在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中