码迷,mamicode.com
首页 > 其他好文 > 详细

DataTable操作汇总

时间:2018-05-18 17:59:49      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:hide   none   class   odata   adt   ide   img   类型   ldd   

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();
View Code

 

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操作汇总

标签:hide   none   class   odata   adt   ide   img   类型   ldd   

原文地址:https://www.cnblogs.com/drew/p/9057059.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!