本文意在說明一下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