DataTable操作汇总
Posted drew
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DataTable操作汇总相关的知识,希望对你有一定的参考价值。
1、排序
DataTable dt = new DataTable(); dt.Columns.Add("Name"); dt.Columns.Add("Age");//因为是字符串,所以排序不对 dt.Rows.Add("小明", "21"); dt.Rows.Add("小张", "10"); dt.Rows.Add("小红", "9"); dt.Rows.Add("小伟", "7"); dt.Rows.Add("小美", "3"); dt.DefaultView.Sort = "Age ASC"; dt = dt.DefaultView.ToTable();
2、dataTable根据列的值筛选出数据行
DataRow[] flightInfoRows = keyParaDt.Select("fli_id = ‘" + afliid + "‘");
3、dataRow[]转换为dataTable
DataTable flightInfo = flightInfoRows.CopyToDataTable();
4、复制dataTable,包含结构和数据
//克隆表的结构。但不复制数据 DataTable newDataTable = oldDataTable.Clone(); object[] obj = new object[newDataTable.Columns.Count]; for (int i = 0, count = oldDataTable.Rows.Count; i < count; i++) { oldDataTable.Rows[i].ItemArray.CopyTo(obj, 0); newDataTable.Rows.Add(obj); }
或者
//克隆表的结构。但不复制数据 DataTable newDataTable = oldDataTable.Clone(); for (int i = 0, count = oldDataTable.Rows.Count; i < count; i++) { DataRow row = newDataTable.NewRow(); row.ItemArray = oldDataTable.Rows[i].ItemArray; newDataTable .Rows.Add(row); }
注意以下的写法是错误的,报错“该行已经属于另一个表”,因为DataRow是引用类型的,不能同时被两个DataTable包含。
newDataTable.Rows.Add(oldDataTable.Rows[i]);
以上是关于DataTable操作汇总的主要内容,如果未能解决你的问题,请参考以下文章
在C#中进行DataTable操作:根据列数据插入一些汇总行