筛选 DataTable 数据的方法

筛选 DataTable 数据的方法
//假设 dt 是由"SELECT C1,C2,C3 FROM T1"查询出来的结果
DataRow[] drArr = dt.Select("C1='abc'");//查询
DataRow[] drArr = dt.Select("C1 LIKE 'abc%'");//模糊查询
DataRow[] drArr = dt.Select("'abc' LIKE C1 + '%'", "C2 DESC");//另一种模糊查询的方法
DataRow[] drArr = dt.Select("C1='abc'", "C2 DESC");//排序
把 DataRow 赋值给新的 DataTable:
DataTable dtNew = dt.Clone();
for (int i = 0; i < drArr.Length; i++)
{ dtNew.ImportRow(drArr[i]); }
这样就完成了.

3.5 里的 DataRow[]有个扩展方法 CopyToDataTable()
 /* * 补充一下,还可以利用 DataView 来达到检索的目的. */
DataTable dataSource = new DataTable();
DataView dv = dataSource.DefaultView;
dv.RowFilter = "columnA = 'abc'";
//1.过滤后直接获取 DataTable
DataTable newTable1 = dv.ToTable();
//2.设置新 DataTable 的 TableName
DataTable newTable2 = dv.ToTable("NewTableName");
//3.设置新表是否过滤重复项,拥有的列的列名以及出现的顺序
//即可以设置新表的字段.但是字段名肯定是老表 dataSource 中拥有的.
 DataTable newTable3 = dv.ToTable(true, new string[] { "columnA,columnF,columnC" });
//4.综合了 2.3 两点. DataTable newTable4 = dv.ToTable("NewTableName", true, new string[] { "columnA,columnF,columnC" }); 

你可能感兴趣的:(Datatable,筛选,数据的方法)