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

  One:

  1. DataTable TableTemp = new DataTable();//临时table
  1. 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");//查询的结果
  2. if (tableAd != null && tableAd.Rows.Count > )
  3. {
  4. Tableflag = tableAd.Copy();//复制结构
  5. Tableflag.Clear();//清除临时数据
  6. foreach (DataRow dr in tableAd.Rows)
  7. {
  8. if (dr["ParentId"].ToString().Equals(""))
  9. {
  10. 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:

  1. #region DataTable筛选,排序返回符合条件行组成的新DataTable或直接用DefaultView按条件返回
  2. /// <summary>
  3. /// DataTable筛选,排序返回符合条件行组成的新DataTable或直接用DefaultView按条件返回
  4. /// eg:SortExprDataTable(dt,"Sex='男'","Time Desc",1)
  5. /// </summary>
  6. /// <param name="dt">传入的DataTable</param>
  7. /// <param name="strExpr">筛选条件</param>
  8. /// <param name="strSort">排序条件</param>
  9. /// <param name="mode">1,直接用DefaultView按条件返回,效率较高;2,DataTable筛选,排序返回符合条件行组成的新DataTable</param>
  10. public static DataTable SortDataTable(DataTable dt, string strExpr, string strSort, int mode)
  11. {
  12. switch (mode)
  13. {
  14. case :
  15. //方法一 直接用DefaultView按条件返回
  16. dt.DefaultView.RowFilter = strExpr;
  17. dt.DefaultView.Sort = strSort;
  18. return dt;
  19. case :
  20. //方法二 DataTable筛选,排序返回符合条件行组成的新DataTable
  21. DataTable dt1 = new DataTable();
  22. DataRow[] GetRows = dt.Select(strExpr, strSort);
  23. //复制DataTable dt结构不包含数据
  24. dt1 = dt.Clone();
  25. foreach (DataRow row in GetRows)
  26. {
  27. dt1.Rows.Add(row.ItemArray);
  28. }
  29. return dt1;
  30. default:
  31. return dt;
  32. }
  33. }
  34. #endregion
  1. //选取ParentId=17的所以行,并根据Sorts降序排序
    TableTemp = SortDataTable(tableAd, "ParentId=17", "Sorts Desc", );

Three:

  1. #region 获取DataTable前几条数据
  2. /// <summary>
  3. /// 获取DataTable前几条数据
  4. /// </summary>
  5. /// <param name="TopItem">前N条数据</param>
  6. /// <param name="oDT">源DataTable</param>
  7. /// <returns></returns>
  8. public static DataTable DtSelectTop(int TopItem, DataTable oDT)
  9. {
  10. if (oDT.Rows.Count < TopItem) return oDT;
  11.  
  12. DataTable NewTable = oDT.Clone();
  13. DataRow[] rows = oDT.Select("1=1");
  14. for (int i = ; i < TopItem; i++)
  15. {
  16. NewTable.ImportRow((DataRow)rows[i]);
  17. }
  18. return NewTable;
  19. }
  20. #endregion
  1. //选取前7行数据
    TableTemp = DtSelectTop(, Table1);

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. C# 基础:DataTable操作、发邮件

    本文出自:https://www.cnblogs.com/2186009311CFF/p/6865909.html DataTable操作 据参数删除为0的列:包括遍历.删除.取值 public st ...

  3. QTP的DataTable操作整理(注---不知转载多少遍)

    返回值:数字 示例: 以下示例使用 GetRowCount 方法查找 MySheet 运行时数据表中最长的列中的总行数,并将其写入报告. rowcount = DataTable.GetSheet(& ...

  4. QTP中DataTable操作大全

    序曲 假设现在有一个Excel文件:D:\data.xls,里面的具体内容如下:有两个Sheet,第一个叫Login,第二个叫InsertOrder: 当前QTP的Test中有两个Action:Log ...

  5. DataTable 操作

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

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

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

  7. LINQ系列:LINQ to DataSet的DataTable操作

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

  8. .NET DataSet、DataTable操作记录

    一直在习惯.net的编程思维,或是说C#吧.因为前几年一直在用PHP做站,现在用.net很不习惯,主要C#都依赖对控件.类的熟悉,不然很多功能都实现不了. 需求 最近做了一功能,从SQL Server ...

  9. 对datatable操作,查询

    #region DataTable筛选,排序返回符合条件行组成的新DataTable或直接用DefaultView按条件返回 /// <summary> /// DataTable筛选,排 ...

随机推荐

  1. CodeBlock

    CodeBlock官网是: http://www.codeblocks.org/ 选择Download the binary release: 根据自己电脑的情况选择想要的版本:(以博主电脑为例,wi ...

  2. windows 7/10下安装oracle 10g

    有段时间没搞oracle了,最近要给别人在win 7下装个oracle 10g,特记录备忘下. 使用http://download.oracle.com/otn/nt/oracle10g/10201/ ...

  3. Ubuntu 12.10 配置MyEclipes 10.7环境(加破解)

    下周要在Ubuntu中调试程序,所以今天抽空先配置好Myeclipse环境. 准备: JDK  下载地址: http://www.oracle.com/technetwork/java/javase/ ...

  4. 使用Sublime Text作为Markdown编辑器

    Sublime Text 3作为一个优秀的文本编辑器,拥有很多的扩展插件.我们可以利用这些插件为Sublime Text 增加扩展的功能,在这里我们借助两个插件来将Sublime Text 3变成一个 ...

  5. css知多少(2)——学习css的思路

    两周之前写过该系列的第一篇,其实当时只是一个想法,这段时间迟迟未更新,是在思考一个解决过程.现在初有成效,就开更吧. 1. 一个段子 开题不必太严肃,写博客也不像写书,像聊天似的写东西是最好的表达方式 ...

  6. jquery实现输入框实时输入触发事件代码

    $('.aa').bind('input propertychange', function() { searchProductClassbyName(); }); function searchPr ...

  7. emberjs学习一(环境和第一个例子)

    code { margin: 0; padding: 0; white-space: pre; border: none; background: transparent; } code, pre t ...

  8. asp.net面试题汇总

    1.静态成员和非静态成员的区别? 答: 静态变量使用 static 修饰符进行声明,在类被实例化时创建,通过类进行访问不带有 static 修饰符声明的变量称做非静态变量,在对象被实例化时创建,通过对 ...

  9. 【服务器】CentOS下部署运行NodeJs Web App

    NodeJs Web App测试完成后,要怎么部署呢?介绍两个不错的方案 已知以下情景: 我要为 「kenniu」这个项目做配置 它的入口文件在 「/path/to/entry.js」 运行的User ...

  10. js获取隐藏元素宽高的方法

    网上有一些js获取隐藏元素宽高的方法,但是可能会存在某些情况获取不了. 例如: <!DOCTYPE html> <html lang="en"> <h ...