首页 > 其他 > 详细

DataTable操作汇总

时间:2018-05-18 17:36:06      阅读:158      评论:0      收藏:0      [点我收藏+]

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

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!