多表查询返回多个DataTable并合并到一个Table中2011-10-04 博客园 有所为,有所不为本文意在说明一下DataSet.Merge(Table)和多个Table合并到一个里面的操作.因为是新手,代码肯定有 很多问题,欢迎大家批评指正.    如果你有更好的解决方案,请告诉我.谢谢.先说一下需求:ASP.NET+MYSQL

查询连续N天的邮件发送日志.在库里,表是按天存放的,表名也是按天命名的.例 如:send20090302,status20090302,两张表有ID关联.为了调试简单,我把日期直接写死.在点查询按钮之后 ,首先根据得到的日期拼凑表名,得到两个表名数组,然后调用MySqlHelper类里的方法,下面是数据库操作 的代码.因为用的是MySql,所以需要添加一个MySql.Data.dll引用.另外前两天看过string 与 stringbuilder之间的区别,所以拼sql 时用了stringbuilder,然后用其ToString()赋给数组.对数据做点说明:mstatus:all,success,failuremtype:jobs,emailpageindex,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