程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 多表查詢返回多個DataTable並合並到一個Table中

多表查詢返回多個DataTable並合並到一個Table中

編輯:關於ASP.NET

本文意在說明一下DataSet.Merge(Table)和多個Table合並到一個裡面的操作.因為是新手,代碼肯定有 很多問題,歡迎大家批評指正.    如果你有更好的解決方案,請告訴我.謝謝.

先說一下需求:ASP.NET+MYSQL

查詢連續N天的郵件發送日志.在庫裡,表是按天存放的,表名也是按天命名的.例 如:send20090302,status20090302,兩張表有ID關聯.為了調試簡單,我把日期直接寫死.在點查詢按鈕之後 ,首先根據得到的日期拼湊表名,得到兩個表名數組,然後調用MySqlHelper類裡的方法,下面是數據庫操作 的代碼.因為用的是MySql,所以需要添加一個MySql.Data.dll引用.另外前兩天看過string 與 stringbuilder之間的區別,所以拼sql 時用了stringbuilder,然後用其ToString()賦給數組.

對數據做點說明:

mstatus:all,success,failure

mtype:jobs,email

pageindex,pagesize為分頁控件的屬性,分別表示第N頁,和每頁顯示多少數據.

拼表名的方法:

Code

 1 //數據庫表名
 2        string[] sendTables;
 3        string[] statusTables;
 4
 5        //拼表名
 6        void GetTableName()
 7        {
 8            string dateFrom = "2009-01-07";
 9            string dateTo = "2009-01-10";
10            TimeSpan ts = Convert.ToDateTime(dateTo) - Convert.ToDateTime (dateFrom);
11            int counter = ts.Days + 1;
12            sendTables = new string[counter];
13            statusTables = new string[counter];
14
15            for (int i = 0; i < counter; i++)
16            {
17                sendTables[i] = "mailsend" + Convert.ToDateTime (dateFrom).AddDays(i).ToString("yyyyMMdd");
18                statusTables[i] = "mailstatus" + Convert.ToDateTime (dateFrom).AddDays(i).ToString("yyyyMMdd");
19            }
20
21        }
22

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved