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. spring security 学习

    1.默认登录   user  /df1fc617-bb94-494e-8adb-0234046bf092 取消校验 在启动类上添加下面的注解 @EnableAutoConfiguration(excl ...

  2. RAID阵列盘有一块状态变为外来处理方法

    感谢: https://blog.csdn.net/cmzsteven/article/details/63680933

  3. ffmpeg奇数分辨率转码失败

    偶然遇到将目的分辨率设置成奇数(例如:854x481)导致ffmpeg转码失败(错误:width not divisible by 2 (854x481)) 于是去查了一下原因:由于转码后的pix_f ...

  4. L1-037 A除以B (10 分)

    题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805094485180416   真的是简单题哈 —— 给定两个 ...

  5. 20175224 2018-2019-2 《Java程序设计》第六周学习总结

    教材学习内容总结 第七章:内部类与异常类 内部类:java支持在类中定义另一个类,这个类为内部类,包含内部类的类称为外嵌类. 理解内部类与外嵌类. Java编译器生成的内部类的字节码文件为“外嵌类名$ ...

  6. Python机器学习(基础篇---监督学习(支持向量机))

    支持向量机(分类) 支持向量机分类器根据训练样本的分布,搜索所有可能的线性分类器中最佳的那个.我们会发现决定其直线位置的样本并不是所有训练数据,而是其中的两个空间间隔最小的两个不同类别的数据点,而我们 ...

  7. classPath与PATH

    PATH是window的变量,而不是Java的变量: 通常配置PATH路径是为了找到需要的XX.exe命令,而且配置在用户的变量下面: 例如:JDK中的javac与java命令在cmd中使用,需要把命 ...

  8. 运动控制之一_PID控制理论

    PID算法是早期发展起来的控制算法,该算法因其简单.鲁棒性强且可靠性高而被广泛地应用于过程控制和运动控制中. 常规的PID控制系统原理框图如下所示: PID控制系统原理图 误差信号Err(t)输入到控 ...

  9. JQuery图片自适应窗口轮播图(淡入淡出效果)

    <script>var w = $(window).width();//获取窗口宽度var h = $(window).height();//获取窗口高度 $(".box&quo ...

  10. 本地搭建json-server

    1.前言 为了前端项目获取数据,需要在本地搭建json-server,这样保证可以在本地实现增删改查的操作. 2.安装 全局安装: npm -g json-server 3.创建一个json-serv ...