happyleo12
2016-12-21 01:57
采纳率: 98.5%
浏览 1.3k
已采纳

求C#绘制datatable表格的循环方法

从数据库读取的三张查询语句得到的表:

 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语句不太会写,要和效果表一样的那个,跪求大神

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • HyperMa0 2016-12-21 03:07
    已采纳

    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);
                }
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • HyperMa0 2016-12-21 02:09

    图片说明

    评论
    解决 无用
    打赏 举报
  • HyperMa0 2016-12-21 02:10

    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);
                }
    
    评论
    解决 无用
    打赏 举报
  • HyperMa0 2016-12-21 03:07

    图片说明

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题