DataTable操作

一 复制DataTable中符合条件的DataRow到新的DataTable中

  One:

DataTable TableTemp = new DataTable();//临时table
DataTable tableAd = new Web.DAL.FreeBase().TranSQLGetTable("select a.ClassName,b.ParentId,b.Name,b.Pic,b.Url,b.Sorts from AdClass a inner join Ad b on a.Id=b.ParentId");//查询的结果if (tableAd != null && tableAd.Rows.Count > 0){Tableflag = tableAd.Copy();//复制结构Tableflag.Clear();//清除临时数据foreach (DataRow dr in tableAd.Rows){if (dr["ParentId"].ToString().Equals("17")){DataRow tempRow =TableTemp.NewRow(); //创建与该表相同架构的新行              tempRow["ClassName"] = dr["ClassName"];              tempRow["ParentId"] = dr["ParentId"];              tempRow["Name"] = dr["Name"];              tempRow["Pic"] = dr["Pic"];              tempRow["Url"] = dr["Url"];              tempRow["Sorts"] = dr["Sorts"];              TableTemp.Rows.Add(tempRow);            }           }         }

Two:

#region DataTable筛选,排序返回符合条件行组成的新DataTable或直接用DefaultView按条件返回/// <summary>  /// DataTable筛选,排序返回符合条件行组成的新DataTable或直接用DefaultView按条件返回  /// eg:SortExprDataTable(dt,"Sex='男'","Time Desc",1)  /// </summary>  /// <param name="dt">传入的DataTable</param>  /// <param name="strExpr">筛选条件</param>  /// <param name="strSort">排序条件</param>  /// <param name="mode">1,直接用DefaultView按条件返回,效率较高;2,DataTable筛选,排序返回符合条件行组成的新DataTable</param>  public static DataTable SortDataTable(DataTable dt, string strExpr, string strSort, int mode){switch (mode){case 1://方法一 直接用DefaultView按条件返回  dt.DefaultView.RowFilter = strExpr;dt.DefaultView.Sort = strSort;return dt;case 2://方法二 DataTable筛选,排序返回符合条件行组成的新DataTable  DataTable dt1 = new DataTable();DataRow[] GetRows = dt.Select(strExpr, strSort);//复制DataTable dt结构不包含数据  dt1 = dt.Clone();foreach (DataRow row in GetRows){dt1.Rows.Add(row.ItemArray);}return dt1;default:return dt;}}#endregion  

View Code

//选取ParentId=17的所以行,并根据Sorts降序排序TableTemp = SortDataTable(tableAd, "ParentId=17", "Sorts Desc", 2);

Three:

        #region 获取DataTable前几条数据/// <summary>  /// 获取DataTable前几条数据  /// </summary>  /// <param name="TopItem">前N条数据</param>  /// <param name="oDT">源DataTable</param>  /// <returns></returns>  public static DataTable DtSelectTop(int TopItem, DataTable oDT){if (oDT.Rows.Count < TopItem) return oDT;DataTable NewTable = oDT.Clone();DataRow[] rows = oDT.Select("1=1");for (int i = 0; i < TopItem; i++){NewTable.ImportRow((DataRow)rows[i]);}return NewTable;}#endregion

View Code

//选取前7行数据TableTemp = DtSelectTop(7, Table1);

posted on 2015-07-03 14:43 无影飞絮剑 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/itslives-com/p/4618627.html

DataTable操作相关推荐

  1. C# LINQ系列:LINQ to DataSet的DataTable操作 及 DataTable与Linq相互转换

    LINQ to DataSet需要使用System.Core.dll.System.Data.dll和System.Data.DataSetExtensions.dll,在项目中添加引用System. ...

  2. 媲美Pandas?一文入门Python的Datatable操作

    作者 | Parul Pandey 译者 | linstancy 责编 | Jane 出品 | Python大本营(id:pythonnews) [导读]工具包 datatable 的功能特征与 Pa ...

  3. [C#] DataTable 操作汇总(持续更新)

    1.DataTable 分组操作 var grow = dt.Select().GroupBy((row1) => {return new {//分组的字段fieldA = row1[" ...

  4. c#关于DATATABLE,操作详解

    public void CreateTable() { //创建表 DataTable dt = new DataTable(); //1.添加列dt.Columns.Add("Name&q ...

  5. jQuery dataTable 操作个人使用总结

    用过之后总会忘,不停的查,不停的忘.这里记录一下,仅为个人简单总结,具体使用方法请看官方API文档. 1. 获取表中行数.  var rowNum = $(tableSelector).DataTab ...

  6. DataSet DataTable操作

    SqlDataReader sdr = cmd.ExecuteReader(); while (sdr.Read()) //行的读取 { Response.Write(sdr[0]); //列的读取, ...

  7. DataTable操作相关实例

    代码         public DataSet GetChildDepartmentsByUserId(Guid userId)          {             DataSet ds ...

  8. DataTable操作(建表,建行,建列,添加数据)

    public DataTable GetNewTable() {DataTable dt2 = new DataTable("NewDataSet"); //创建一个新Table, ...

  9. 领域驱动设计实践(一)(转)

    分层构架 在分析领域驱动设计之前,我们需要先回顾以前的分层架构."层"是一种体系结构模式,也是被广大软件从业人员用的最为广泛而且最为灵活的模式之一.其中最为大家所熟知的就是三层架构 ...

最新文章

  1. 希捷期望HAMR实现其营收的增长
  2. VTK:Utilities之KnownLengthArray
  3. 大型情感剧集Selenium:2_options设置 #华为云·寻找黑马程序员#
  4. python 堆栈溢出_IAR堆栈溢出的问题
  5. 深入Linux设备驱动程序内核机制
  6. VS C++ memcpy() 用于double、int、结构体
  7. 幻方矩阵(魔方矩阵)
  8. 二叉树的层次遍历(自底向上)Python
  9. mipi的dsi全称_mipi协议里面csi和dsi是什么意思
  10. Gym 101778G
  11. db与放大倍数的转化
  12. 基于 Vue 和 SpringBoot 实现的博客系统(附源码)
  13. 硬件工程师和软件工程师哪个更有前途?
  14. Openwrt无线和有线基本配置方法以及luci管理界面安装
  15. 粒子摇摆 shader
  16. 熊猫烧香作者李俊抓捕实录-读后感
  17. IP组播配置与管理实战——5
  18. tag untag_Vlan中的 PVID vid tag untag 常识理论
  19. 这次彻底搞懂 Promise(手写源码多注释篇)
  20. 程序设计之B - 东东学打牌(C++

热门文章

  1. 自定义ant中table表格的展开图标 修改ant-vue-design中嵌套表格table的expandIcon自定义图标
  2. TCP重组数据包分析
  3. Nginx下配置小绿锁https
  4. [Redux/Mobx] 什么是redux?说说你对redux的理解?有哪些运用场景?
  5. React开发(151):外部引入记得导出
  6. 前端学习(2967):表单验证
  7. [vue] vue和angular有什么区别呢?
  8. 前端学习(2320):typeScript的概述和安装
  9. 前端学习(2244):计算器显示问题
  10. java学习(93):线程的创建方法二