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 + "'");

注意:DataTable.Select()方法里面支持简单的过滤和排序,不支持复杂的条件过滤和排序。里面的字符串必须是列名和数据,以及>、<、=、<>、等关系运算符 ,注意oracle的函数不能使用,如lower、substr等对列数据进行处理的函数。还有一点也很关键。Select操作是大小写不敏感的(记录的字段不敏感),如果需要区分大小写,需要将DataTable的caseSensitive属性设为true。例如,看一下语句,报错

DataTable dtq = dtPara.Select("LOWER(SUBSTR(name,0,1)) = 'q'").CopyToDataTable();

需要查找name字段首字母为q或Q的记录。由上面的分析,可以用以下语句代替

DataTable dtq = dtPara.Select("name like 'q%'").CopyToDataTable();

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]);

最新文章

  1. IISExpress 调试使用学习,使用附加到进程进行快速调试
  2. Unity5 AssetBundle 打包以及加载
  3. Guava学习笔记:复写的Object常用方法
  4. 设计模式C#实现(三)——外观模式
  5. dedecms首页调用栏目内容和单页内容的方法
  6. BZOJ 4597 随机序列
  7. EasyUI - ComboBox 下拉组件
  8. 基础SELECT示例掌握
  9. 《JavaScript面向对象编程指南(第2版)》读书笔记(一)
  10. FND Debug Log(FND_LOG_MESSAGES)
  11. PPT设计灵感功能
  12. Spring Boot + Spring Cloud 构建微服务系统(三):服务消费和负载(Feign)
  13. UVA 11488 Hyper Prefix Sets (字典树)
  14. JCP与JSR
  15. shouldAutoRotate Method Not Called in iOS6
  16. 微信小程序——页面中调用组件方法
  17. English trip -- MC(情景课)3 D
  18. HTML绘制三角形的方法:
  19. MTCNN(Multi-task convolutional neural networks)人脸对齐
  20. swift 3新特性总结

热门文章

  1. 记录 mysql修改密码报错问题 (ERROR 1054 (42S22): Unknown column &#39;password&#39; in &#39;field list&#39;)
  2. Linux环境使用Docker安装SqlServer2017
  3. SpringCloudBus实现配置文件动态更新
  4. Docker部署Springboot+Vue项目
  5. 批量创建xshell会话
  6. flask中的线程隔离技术
  7. 【Go】类型转换
  8. Java程序(数组扩容的尝试)
  9. AI-Chat问答随笔
  10. myForEach