1.抽取其中的distinct数据

DataTable dt;

DataView dv = dt.DefaultView;

 //ToTable()的第一个参数为是否DISTINCT
DataTable dtDistinct = dv.ToTable(true,"FieldName1","FieldName2","...");

2.使用Select筛选数据

 //查询
DataRow[] drArr = dt.Select("C1='abc'"); //模糊查询
DataRow[] drArr = dt.Select("C1 LIKE 'abc%'");
//另一种模糊查询的方法
DataRow[] drArr = dt.Select("'abc' LIKE C1 + '%'", "C2 DESC"); //排序
DataRow[] drArr = dt.Select("C1='abc'", "C2 DESC");

3.使用Find根据主键值查找数据 (为DataTable设置主键)

//为dt设置主键
DataColumn[] col = new DataColumn[] { (dt.Columns["col1"]) };
dt.PrimaryKey = col;
//根据主键值查找
DataRow dr = dt.Rows.Find(""); //为dt设置主键(联合主键 col1 col2)
DataColumn[] col = new DataColumn[] { (dt.Columns["col1"]), dt.Columns["col2"] };
dt.PrimaryKey = col; object[] obj = new object[] { "", "2" };
//根据主键值查找 col1=0 && col2=2 的数据
DataRow dr = dt.Rows.Find(obj);

如果我们要把这些按给定条件筛选出来的数据重新赋给一个新的DataTable

错误示范:

 DataTable dtNew = dt.Clone();
for (int i = ; i < drArr.Length; i++)
{
dtNew.Rows.Add(drArr[i]);
}

(这样会提示DataRow属于其他DataTable)

应该使用下面方法进行赋值:

 DataTable dtNew = dt.Clone();
for (int i = ; i < drArr.Length; i++)
{
dtNew.ImportRow(drArr[i]);
}

参考链接:

https://blog.csdn.net/dengsunshine69/article/details/48004241

https://www.cnblogs.com/jianxm/archive/2009/03/31/1426681.html

https://blog.csdn.net/wfflzt/article/details/47010049

C# 关于 DataTable 的一些使用的更多相关文章

  1. DataTable 转换成 Json的3种方法

    在web开发中,我们可能会有这样的需求,为了便于前台的JS的处理,我们需要将查询出的数据源格式比如:List<T>.DataTable转换为Json格式.特别在使用Extjs框架的时候,A ...

  2. C#中将DataTable导出为HTML的方法

    今天我要向大家分享一种将DataTable导出为到HTML格式的方法.有时我们需要HTML格式的输出数据, 以下代码就可以帮助我们达到目的,. 首先,我们要绑定DataTable和 DataGridV ...

  3. DataTable转换成IList<T>的简单实现

    DataTable的无奈 很多时候,我们需要去操作DataTable.但DataTable的操作,实在是太不方便了.Linq?lambda表达式?统统没有... 特别是对现有结果集做进一步筛选,这样的 ...

  4. 自用的基于Emit的C#下DataTable转实体类方法

    之前一直在做WebForm的开发,数据绑定时直接DataTable绑定Gridview很方便,但是最近开始往MVC转,数据列表的传递和页面展示基本上是以List为主,像下面这样,遍历实体类的各个字段去 ...

  5. jquery dataTable汉化(插件形式)

    1.jquery dataTable.js 官网:http://datatables.net/ 中文:http://dt.thxopen.com/ 2.汉化提示信息(放到xx.js中,引入即可) 注: ...

  6. DataTable与DTO对象的简易转换类

    在web开发过程中,有时候为了数据传输的方便,比如:后台需要更新前端的ViewModel,此时我们定义一个与前端ViewModel结构一样的DTO对象,从数据层获取数据后,将数据封装成DTO然后序列化 ...

  7. asp.net DataTable导出Excel 自定义列名

    1.添加引用NPOI.dll 2.cs文件头部添加 using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using System.IO; 3.代码如 ...

  8. asp.net dataTable转换成Json格式

    /// <summary> /// dataTable转换成Json格式 /// </summary> /// <param name="dt"> ...

  9. DataTable的orderby有关问题

    在网上找了一个在后台重新对DataTable排序的方法(之所以不在数据库是因为我生成的是报表,写了存储过程用的表变量,order by也要用变量,死活拼不起来,sql能力没过关,动态sql也试了) s ...

  10. 关于c#在DataTable中根据条件删除某一行

    我们经常会将数据源放在DataTable里面,但是有时候也需要移除不想要的行,下面的代码告诉你们 DataTable dts:                DataRow[] foundRow;   ...

随机推荐

  1. [Linux] Extend space of root disk in Linux7

    [root@node1 ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/mapper/centos-root 26G 17G 9.8G ...

  2. Unity3d KeyCode 键盘各种键值详情

    KeyCode :KeyCode是由Event.keyCode返回的.这些直接映射到键盘上的物理键. 值        对应键 Backspace     退格键 Delete      Delete ...

  3. C语言:递归函数n!

    #include <stdio.h> long recursion(int n); void main(){ int n; long result; printf("input ...

  4. 多线程之 Runnable接口

    一.多线程实现的第二种方式 1.定义类,实现Runnable接口 2.重写接口中的run方法,要在run方法中定义线程要执行的任务 public class MyRunnableImpl implem ...

  5. MFC动态创建对话框中的按钮控件并创建其响应消息

    转自:http://www.cnblogs.com/huhu0013/p/4626686.html 动态按钮(多个)的创建: 1.在类中声明并定义按钮控件的ID #define IDC_D_BTN 1 ...

  6. 第八次作业:聚类--K均值算法:自主实现与sklearn.cluster.KMeans调用

    import numpy as np x = np.random.randint(1,100,[20,1]) y = np.zeros(20) k = 3 def initcenter(x,k): r ...

  7. python flask route中装饰器的使用

    问题:route中的装饰器为什么感觉和平时使用的不太一样,装饰器带参数和不太参数有什么区别?被修饰的函数带参数和不带参数有什么区别? 测试1:装饰器不带参数,被修饰的函数也不带参数. def log( ...

  8. windows中obs源码编译的坑

    好用的版本: cmake-3.6.1-win64-x64  +  vs2015  + qt-opensource-windows-x86-msvc2015_64-5.7.0   +   obs-stu ...

  9. [RESTful] 设计要素

    如何设计RESTful API 资源路径(入何规划资源路径) HTTP动词(请求方式 GET/POST...) 过滤信息(分页,查询操作的时候进行信息过滤) 状态码(服务器端响应什么样的状态码) 错误 ...

  10. windows下安装memcached,报错:Failed to ignore SIGHUP RESULT too large

    小平板不想装虚拟机, 但是却跑不起memcached 网上虽有解决方案,但都只有一条命令, 没有出处. 翻了半天, 找到这个连接 https://commaster.net/content/insta ...