C#中的DataTable查询实战教程
DataTable查询
工作中遇到了需要进行DataTable进行查询的需求,简单研究了一下,最终使用一下方案实现,简单记录一下便于以后使用。
DataTabledt=dataBox.GetDataForDataTable();//获取DataTable所有数据,准备进行查询 DataRow[]dtRow=dt.Select("调剂日期=‘"+MediumCode.Text.Trim()+"'");//根据查询条件,筛选出所有满足条件的列 DataTabledtNew=dt.Clone();//克隆与原表结构相同的新表(不包括数据) foreach(DataRowitemindtRow)//把满足条件的所有列赛到新表中 { dtNew.ImportRow(item); } dataBox.DataBinding(dtNew);//给控件绑定新值(即查询结果)
补充:C#通过LINQ对DataTable数据查询,结果生成DataTable
我就废话不多说啦,大家还是直接看代码吧~
varquery=fromgindt_stu.AsEnumerable() groupgbynew{ t1=g.Field("STU_ID"), t2=g.Field ("CLASS_ID") }intom selectnew { STU_ID=m.Key.t1, CLASS_ID=m.Key.t2, 成绩总合计=m.Sum(a=>a.Field ("成绩")), 优秀人数=m.Count(a=>a.Field ("成绩")>95) }; DataTabledt_article=UserClass.ToDataTable(query); /// ///LINQ返回DataTable类型 /// ////// /// publicstaticDataTableToDataTable (IEnumerable varlist) { DataTabledtReturn=newDataTable(); //columnnames PropertyInfo[]oProps=null; if(varlist==null) returndtReturn; foreach(Trecinvarlist) { if(oProps==null) { oProps=((Type)rec.GetType()).GetProperties(); foreach(PropertyInfopiinoProps) { TypecolType=pi.PropertyType; if((colType.IsGenericType)&&(colType.GetGenericTypeDefinition() ==typeof(Nullable<>))) { colType=colType.GetGenericArguments()[0]; } dtReturn.Columns.Add(newDataColumn(pi.Name,colType)); } } DataRowdr=dtReturn.NewRow(); foreach(PropertyInfopiinoProps) { dr[pi.Name]=pi.GetValue(rec,null)==null?DBNull.Value:pi.GetValue (rec,null); } dtReturn.Rows.Add(dr); } returndtReturn; }
以上为个人经验,希望能给大家一个参考,也希望大家多多支持毛票票。如有错误或未考虑完全的地方,望不吝赐教。