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]);
原文地址:https://www.cnblogs.com/drew/p/9057059.html
时间: 2024-10-11 14:01:28