从数据库读取的三张查询语句得到的表:
A库 time,id,err B库 time,id,err C库 time,id,err
1:00,1,34 1:00,1,55 1:00,1,88
2:00,1,38 2:00,1,33 2:00,1,99
3:00,1,89 3:00,1,43 3:00,1,167
这是三个数据库分别查的
效果表: time id errA errB errC
1:00 1 34 55 88
2:00 1 38 33 99
3:00 1 89 43 167
在后台代码绘制datatable
DataTable dt = new DataTable("rawData");
//初始化数据
//新建行和列
dt.Columns.Add("Time");
dt.Columns.Add("ErrA");
dt.Columns.Add("ErrB");
dt.Columns.Add("ErrC");
dt.Rows.Add("", "",0, 0, 0);
dt.Rows.Add("", "",0, 0, 0);
dt.Rows.Add("", "",0, 0, 0);
接下来要用循环语句把数据一个一个加进datatable表内,好像是用foreach语句不太会写,要和效果表一样的那个,跪求大神
3库一一对应
DataTable dt = new DataTable("rawData");
//初始化数据
//新建行和列
dt.Columns.Add("Time");
dt.Columns.Add("ErrA");
dt.Columns.Add("ErrB");
dt.Columns.Add("ErrC");
dt.Columns.Add("id");//id不要丢啊
//A B C三库 是你已经得到的
DataTable a = new DataTable();
DataTable b = new DataTable();
DataTable c = new DataTable();
//循环A库 循环一条A 找B和C 再插入到结果表里
foreach (DataRow drA in a.Rows)
{
//先得到B库和C库的err
DataRow drB = b.Select("id=" + drA["id"] + " and time=" + drA["time"])[0];
DataRow drC = b.Select("id=" + drA["id"] + " and time=" + drA["time"])[0];
//新建一行
DataRow dr = dt.NewRow();
//赋值
dr["Time"] = drA["time"];
dr["ErrA"] = drA["err"];
dr["ErrB"] = drB["err"];
dr["ErrC"] = drC["err"];
dr["id"] = drA["id"];
//构造完dr后 插入dt
dt.Rows.Add(dr);
}
DataTable dt = new DataTable("rawData");
//初始化数据
//新建行和列
dt.Columns.Add("Time");
dt.Columns.Add("ErrA");
dt.Columns.Add("ErrB");
dt.Columns.Add("ErrC");
dt.Columns.Add("id");//id不要丢啊
//三表联合查询:效果表dtSearch
DataTable dtSearch = new DataTable();
//time id errA errB errC
// 1:00 1 34 55 88
// 2:00 1 38 33 99
// 3:00 1 89 43 167
//循环上面效果表的dt,往新表里插入
foreach (DataRow drResult in dtSearch.Rows)
{
//新建一行
DataRow dr = dt.NewRow();
//赋值
dr["Time"] = drResult["time"];
dr["ErrA"] = drResult["errA"];
dr["ErrB"] = drResult["errB"];
dr["ErrC"] = drResult["errC"];
dr["id"] = drResult["id"];
//构造完dr后 插入dt
dt.Rows.Add(dr);
}