datatable N个表之间相加使用for循环,速度十分的慢,求解

解决方案 »

  1.   


    将数据放在一个dataset集中
      

  2.   

    将数据放在一个dataset集中.相加操作的时候
    ds_com_play.Tables[ds_com_play.Tables.Count - 1].Rows[q]["***"] = Convert.ToDouble(ds_com_play.Tables[ds_com_play.Tables.Count - 1].Rows[q]["**"].ToString()) +  Convert.ToDouble(ds_dt_play.Tables[table_name].Rows[q]["**"].ToString());
    这个for循环占用了大量的时间,做每行的相加操作。
      

  3.   

    DataTable dt1 = ds_com_play.Tables[ds_com_play.Tables.Count - 1];
    DataTable dt2 = s_dt_play.Tables[table_name];
    for(){
      dt1.Rows[q]["***"] = (double)dt1.Rows[q]["**"] + (double)dt2.Rows[q]["**"];
    }
    把列名改为索引号可以更快点改造后快将近40%
      

  4.   

    linq to datatable可以尝试
      

  5.   

    dt.Compute("","")计算再遍历
    linq to datatable
      

  6.   

    用Ilist<model> 装数据,第一个表查出来装到list里面,然后查第二个的时候,把list传过去,继续装,直到几张表一起装完,在返回