首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

多表查詢合併多個 DataTable 為單一結果集

     編輯:關於ASP.NET

需求:查詢連續 N 天的郵件發送日誌。資料庫按天分表(如 send20090302、status20090302),透過 ID 關聯。使用 DataSet.Merge 將多天資料合併。

動態生成表名

string[] sendTables, statusTables;

void GetTableNames()
{
    string dateFrom = "2009-01-07";
    string dateTo = "2009-01-10";
    int days = (Convert.ToDateTime(dateTo) - Convert.ToDateTime(dateFrom)).Days + 1;
    
    sendTables = new string[days];
    statusTables = new string[days];
    
    for (int i = 0; i < days; i++)
    {
        string suffix = Convert.ToDateTime(dateFrom).AddDays(i).ToString("yyyyMMdd");
        sendTables[i] = "mailsend" + suffix;
        statusTables[i] = "mailstatus" + suffix;
    }
}

合併策略

逐日查詢並 Merge 至主 DataTable,注意 PrimaryKey 設定避免重複。使用 StringBuilder 構建動態 SQL,參數化防注入。MySQL 需引用 MySql.Data.dll。

資料說明:mstatus(all/success/failure)、mtype(jobs/email)、分頁參數 pageindex/pagesize。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved