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(IEnumerablevarlist)
{
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;
}
以上为个人经验,希望能给大家一个参考,也希望大家多多支持毛票票。如有错误或未考虑完全的地方,望不吝赐教。