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 > )
- {
- Tableflag = tableAd.Copy();//复制结构
- Tableflag.Clear();//清除临时数据
- foreach (DataRow dr in tableAd.Rows)
- {
- if (dr["ParentId"].ToString().Equals(""))
- {
- 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 :
- //方法一 直接用DefaultView按条件返回
- dt.DefaultView.RowFilter = strExpr;
- dt.DefaultView.Sort = strSort;
- return dt;
- case :
- //方法二 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
- //选取ParentId=17的所以行,并根据Sorts降序排序
TableTemp = SortDataTable(tableAd, "ParentId=17", "Sorts Desc", );
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 = ; i < TopItem; i++)
- {
- NewTable.ImportRow((DataRow)rows[i]);
- }
- return NewTable;
- }
- #endregion
- //选取前7行数据
TableTemp = DtSelectTop(, Table1);
DataTable操作的更多相关文章
- C# LINQ系列:LINQ to DataSet的DataTable操作 及 DataTable与Linq相互转换
LINQ to DataSet需要使用System.Core.dll.System.Data.dll和System.Data.DataSetExtensions.dll,在项目中添加引用System. ...
- C# 基础:DataTable操作、发邮件
本文出自:https://www.cnblogs.com/2186009311CFF/p/6865909.html DataTable操作 据参数删除为0的列:包括遍历.删除.取值 public st ...
- QTP的DataTable操作整理(注---不知转载多少遍)
返回值:数字 示例: 以下示例使用 GetRowCount 方法查找 MySheet 运行时数据表中最长的列中的总行数,并将其写入报告. rowcount = DataTable.GetSheet(& ...
- QTP中DataTable操作大全
序曲 假设现在有一个Excel文件:D:\data.xls,里面的具体内容如下:有两个Sheet,第一个叫Login,第二个叫InsertOrder: 当前QTP的Test中有两个Action:Log ...
- DataTable 操作
public void CreateTable() { //创建表 DataTable dt = new DataTable(); //1.添加列 dt.Columns.Add("Name& ...
- [C#] DataTable 操作汇总(持续更新)
1.DataTable 分组操作 var grow = dt.Select().GroupBy((row1) => { return new { //分组的字段 fieldA = row1[&q ...
- LINQ系列:LINQ to DataSet的DataTable操作
LINQ to DataSet需要使用System.Core.dll.System.Data.dll和System.Data.DataSetExtensions.dll,在项目中添加引用System. ...
- .NET DataSet、DataTable操作记录
一直在习惯.net的编程思维,或是说C#吧.因为前几年一直在用PHP做站,现在用.net很不习惯,主要C#都依赖对控件.类的熟悉,不然很多功能都实现不了. 需求 最近做了一功能,从SQL Server ...
- 对datatable操作,查询
#region DataTable筛选,排序返回符合条件行组成的新DataTable或直接用DefaultView按条件返回 /// <summary> /// DataTable筛选,排 ...
随机推荐
- CodeBlock
CodeBlock官网是: http://www.codeblocks.org/ 选择Download the binary release: 根据自己电脑的情况选择想要的版本:(以博主电脑为例,wi ...
- windows 7/10下安装oracle 10g
有段时间没搞oracle了,最近要给别人在win 7下装个oracle 10g,特记录备忘下. 使用http://download.oracle.com/otn/nt/oracle10g/10201/ ...
- Ubuntu 12.10 配置MyEclipes 10.7环境(加破解)
下周要在Ubuntu中调试程序,所以今天抽空先配置好Myeclipse环境. 准备: JDK 下载地址: http://www.oracle.com/technetwork/java/javase/ ...
- 使用Sublime Text作为Markdown编辑器
Sublime Text 3作为一个优秀的文本编辑器,拥有很多的扩展插件.我们可以利用这些插件为Sublime Text 增加扩展的功能,在这里我们借助两个插件来将Sublime Text 3变成一个 ...
- css知多少(2)——学习css的思路
两周之前写过该系列的第一篇,其实当时只是一个想法,这段时间迟迟未更新,是在思考一个解决过程.现在初有成效,就开更吧. 1. 一个段子 开题不必太严肃,写博客也不像写书,像聊天似的写东西是最好的表达方式 ...
- jquery实现输入框实时输入触发事件代码
$('.aa').bind('input propertychange', function() { searchProductClassbyName(); }); function searchPr ...
- emberjs学习一(环境和第一个例子)
code { margin: 0; padding: 0; white-space: pre; border: none; background: transparent; } code, pre t ...
- asp.net面试题汇总
1.静态成员和非静态成员的区别? 答: 静态变量使用 static 修饰符进行声明,在类被实例化时创建,通过类进行访问不带有 static 修饰符声明的变量称做非静态变量,在对象被实例化时创建,通过对 ...
- 【服务器】CentOS下部署运行NodeJs Web App
NodeJs Web App测试完成后,要怎么部署呢?介绍两个不错的方案 已知以下情景: 我要为 「kenniu」这个项目做配置 它的入口文件在 「/path/to/entry.js」 运行的User ...
- js获取隐藏元素宽高的方法
网上有一些js获取隐藏元素宽高的方法,但是可能会存在某些情况获取不了. 例如: <!DOCTYPE html> <html lang="en"> <h ...