c#对Datatable数据的处理:DataTable.Select()和DataTable.DefaultView.ToTable();DataRow转DataTable

在sql语句将数据筛选出来后需要在程式在再对数据进行操作比較频繁,以下为整理的部分常用处理方式。

1、DataTable.Select();
DataTable.Select()有4个方法的重载,可以进行简单的搜索和排序,以下为常用的数据处理方法。

DataRow[] drArr = dt.Select("列名=’条件’"); //精准条件查询 DataRow[] drArr = dt.Select("列名 LIKE ’%条件%’"); //模糊查询 DataRow[] drArr = dt.Select("列名1=’条件1’ and 列名2 LIKE ’%条件2%’"); //多条件查询 DataRow[] drArr = dt.Select("列名 LIKE ’%条件%’","排序列名 ASC"); //模糊查询并进行排序 DataRow[] drArr = dt.Select("列名 LIKE ’%条件%’","排序列名 ASC,排序列名2 DESC"); //模糊查询并进行多列排序 

2、DataTable.DefaultView.ToTable(); //将指定列重复值合并类似group by

 DataTable DT = dt.DefaultView.ToTable(true, "列名"); //将指定列重复值合并类似group by 

3、DataRow转DataTable
相信有很多小伙伴和我一样,在通过DataTable.Select();方法使用后,因为程式需要,需要将DataRow转DataTable,以下为参考方法。

(1)、DataTable -> DataRow -> DataTable

// 去除沒寫入廠商的數據 DataTable dtVendor = VendorDataTable.Clone(); DataRow[] Rows = VendorDataTable.Select("Vendor <> ''"); foreach (DataRow DR in Rows) {     dtVendor.ImportRow(DR); } 

(2)、 DataRow -> DataTable

if (rows== null || rows.Length == 0)  return null;   DataTable dtVendor = rows[0].Table.Clone();  // 复制DataRow的表结构   foreach (DataRow DR in rows)   dtVendor.Rows.Add(DR.ItemArray);  // 将DataRow添加到DataTable中