这里介绍数据筛选的第一种方式,不用过滤器,给新手看得
public DataTable SourceList(string Wmain, string OrderNo, string Process) { DataTable Src = HandleProc.SourceList(Wmain, OrderNo, Process); DataTable Dt = new DataTable(); Dt = Src.Clone(); List<string> ArrayList = new List<string>(); if (Src.Rows.Count > 0) { for (int i = 0; i < Src.Rows.Count; i++) { string StrSql = string.Format("select * from Table where Id='{0}' and State ='0'", Src.Rows[i][0]); DataTable Ro = DBHelper.ExecuteQuery("SqlServer", StrSql); if (Ro.Rows.Count == 0) { Dt.ImportRow(Src.Rows[i]); } else { continue; } } } return Dt; }
当时考虑到要筛选出我需要的数据,并且这里的数据量还是一条以上,比如我去判断一个用户组里面,所有登录的人的信息
这里我先调一个存储过程把所有这个用户组的数据先取到DataTable里,然后进行条件筛选,再存到另外一个DataTable里面
这里为了保持两个DataTable一致,我就去克隆我取到的DataTable
DataTable Src = HandleProc.SourceList(Wmain, OrderNo, Process); DataTable Dt = new DataTable(); Dt = Src.Clone();//这里克隆数据,不然会报错
记得从一个DataTable中取一部分数据到另外一个DataTable中必须进行克隆操作,否则会存不进去
符合筛选条件的可以放到另外一个DataTable中
这里本来我想放到List里面的,可以调用数据模型把数据一条条的放进去,这算第二种方式,放到后面记录吧,这里就写这么多了,可以参考一下