DataTable相关操作,筛选,取前N条数据,获取指定列数据
DataTable相关操作,筛选,取前N条数据,获取指定列数据2013-03-12 14:50 by Miracle520, 2667 阅读, 0 评论, 收藏, 编辑

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 1:
15 //方法一 直接用DefaultView按条件返回
16 dt.DefaultView.RowFilter = strExpr;
17 dt.DefaultView.Sort = strSort;
18 return dt;
19 case 2:
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
35 #region 获取DataTable前几条数据
36 /// <summary>
37 /// 获取DataTable前几条数据
38 /// </summary>
39 /// <param name="TopItem">前N条数据</param>
40 /// <param name="oDT">源DataTable</param>
41 /// <returns></returns>
42 public static DataTable DtSelectTop(int TopItem, DataTable oDT)
43 {
44 if (oDT.Rows.Count < TopItem) return oDT;
45
46 DataTable NewTable = oDT.Clone();
47 DataRow[] rows = oDT.Select("1=1");
48 for (int i = 0; i < TopItem; i++)
49 {
50 NewTable.ImportRow((DataRow)rows[i]);
51 }
52 return NewTable;
53 }
54 #endregion
55
56 #region 获取DataTable中指定列的数据
57 /// <summary>
58 /// 获取DataTable中指定列的数据
59 /// </summary>
60 /// <param name="dt">数据源</param>
61 /// <param name="tableName">新的DataTable的名词</param>
62 /// <param name="strColumns">指定的列名集合</param>
63 /// <returns>返回新的DataTable</returns>
64 public static DataTable GetTableColumn(DataTable dt, string tableName, params string[] strColumns)
65 {
66 DataTable dtn = new DataTable();
67 if (dt == null)
68 {
69 throw new ArgumentNullException("参数dt不能为null");
70 }
71 try
72 {
73 dtn = dt.DefaultView.ToTable(tableName, true, strColumns);
74 }
75 catch (Exception e)
76 {
77 throw new Exception(e.Message);
78 }
79 return dtn;
80 }
81 #endregion

DataTable相关操作,筛选,取前N条数据,获取指定列数据的更多相关文章
- DataTable相关操作,筛选,取前N条数据,去重复行,获取指定列数据
#region DataTable筛选,排序返回符合条件行组成的新DataTable或直接用DefaultView按条件返回 /// <summary> /// Dat ...
- ORACLE/MYSQL/DB2等不同数据库取前几条记录
选取数据库中记录的操作是最基础最频繁的,但往往实际应用中不会这么简单,会在选取记录的时候加上一些条件,比如取前几条记录,下面就总结了如何在ORACLE/MYSQL/DB2等一些热门数据库中执行取前几条 ...
- MySql多表关联,根据某列取前N条记录问题
近来遇到一个问题:“MySql多表关联,根据某列取前N条记录”. 刚开始一直在想,SQL语句是否可以做到直接查询出来,但几经折磨,还是没能写出SQL语句,-------如果有大牛的话,望指点迷津.我把 ...
- MSSQL—按照某一列分组后取前N条记录
以前在开发的时候遇到过一个需求,就是要按照某一列进行分组后取前几条数据,今天又有同事碰到了,帮解决了之后顺便写一篇博客记录一下. 首先先建一个基础数据表,代码如下: IF OBJECT_ID(N'Te ...
- oracle 取前10条记录
1.oracle 取前10条记录 1) select * from tbname where rownum < 11; 2) select * from (select * from tbnam ...
- 当前时间、前n天、后n天、取前n条记录、从第n条开始取m条
当前时间:NOW() 前n天:DATE_SUB(NOW(),INTERVAL n DAY) 后n天:DATE_SUB(NOW(),INTERVAL -n DAY) 取前n条记录:SELECT * FR ...
- Oracle 取前几条记录
今天看了篇文章,对oracle取前几条数据的方式和说明,总结比较全,学习了,做个记录点.oracle 取前10条记录 以下内容是原始文章内容,用于做留存阅读. 1.oracle 取前10条记录 1) ...
- oracle和sql server中,取前10条数据语法的区别
在sql server中,取数据中前10条语句,我们可以用top 10 这样语句,但是oracle就没有这个函数,接下来介绍它们之间的区别 1.sql server 取前10语句和随机10条的语法 - ...
- mysql使用GROUP BY分组实现取前N条记录的方法
MySQL中GROUP BY分组取前N条记录实现 mysql分组,取记录 GROUP BY之后如何取每组的前两位下面我来讲述mysql中GROUP BY分组取前N条记录实现方法. 这是测试表(也不知道 ...
随机推荐
- 《javascript高级编程》读书笔记(两)javascript基本概念
第三章:基本概念 ECMAScript那里5种简单数据类型(也称基本数据类型):Undefined\Null\Boolean\Number\String,另一种复杂数据类型--Object,Objec ...
- jquery php 百度搜索框智能提示效果
这个程序是利用php+ajax+jquery 实现的一个仿baidu智能提示的效果,有须要的朋友能够下载測试哦. 代码例如以下 index.html文件,保保存成index.htm <!DOCT ...
- 相关Python分割操作
刚论坛python文本 http://bbs.byr.cn/#!article/Python/1693 攻克了一个关于python分片的问题. 问题: uesrList = ['1','2','3', ...
- 模拟Vue之数据驱动3
一.前言 在"模拟Vue之数据驱动2"中,我们实现了个Observer构造函数,通过它可以达到监听已有数据data中的所有属性. 但,倘若我们想在某个对象中,新增某个属性呢? 如下 ...
- 【原】谈谈promise
最近在看<你不知道的javascript中卷>,发觉作者花了基本一半的篇幅去讲异步和promise,觉得有必要总结一下. 其实本文的目的是想手写一个Promise的,无奈总结着总结着发觉篇 ...
- Scut游戏server引擎Unity3d访问
Scut提供Unity3d Sdk包.便利的高速发展和Scut游戏server对接: 看Unity3d示为以下的比率: 启动Unity3d项目 打开Scutc.svn\SDK\Unity3d\Asse ...
- mapxtreme C# 完美车辆动态轨迹展示
演示程序请在 http://pan.baidu.com/s/1jG9gKMM#dir/path=%2F%E4%BA%A7%E5%93%81%2FDemos 找 Trajectory.rar 轨迹回放功 ...
- 在SurfaceView中自由书写和擦除
/////////继承SurfaceView 的类 public class PaintView extends SurfaceView implements Runnable,SurfaceHold ...
- $.ajax()详解
$.ajax()方法详解 jquery中的ajax方法参数总是记不住,这里记录一下. 1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为Str ...
- SAP RFC 函数来创建 Java呼叫 学习总结 一步一步的插图
前言 该公司很快就接到了一个项目,SAP有接口.让我们做老大SAP.首先SAP联系.但发展从来没有打过.本周集中在这一个研究. 各种碰壁,SAP该系统让我怎么说? 算了.说多了都是泪,以下附上本周学习 ...