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. FTP 代理服务器实现

    本文将在Linux环境下实现一个简单的FTP代理服务器,主要内容涉及FTP主动/被动模式和简单的Socket编程. 1. 主动模式和被动模式 FTP有两种模式,即主动模式(Active Mode)和被 ...

  2. @Dependson注解与@ConditionalOnBean注解的区别

    @Dependson注解是在另外一个实例创建之后才创建当前实例,也就是,最终两个实例都会创建,只是顺序不一样 @ConditionalOnBean注解是只有当另外一个实例存在时,才创建,否则不创建,也 ...

  3. css样式支持左右滑动要点

    div 包含 ul ,ul 包含 li div宽度固定,ul 宽度随着li的可以无限增加,li 左右滑动的最小容器. div 样式position:relative;width:xxpx;height ...

  4. vim详解

    vim介绍: 1.vim是vi的升级版本 2.vim是带有颜色显示的 3.vim三个模式:一般模式.编辑模式.命令模式 最小化模式下默认是没有安装vim的: [root@linux-xl ~]# yu ...

  5. Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks 阅读笔记

    Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks (使用循环一致的对抗网络的非配对图像-图 ...

  6. 利用 Eclipse IDE 的强大功能远程调试 Java 应用程序

    II. Eclipse 连接套接字模式下的 VM 调用示例(具体引用实践) 说明:不管采用哪种方式,调试的源代码都在eclipse的环境下 一.调试方式一(将目标应用程序作为调试的服务器,eclips ...

  7. 利用Excel-Vba进行多表汇总和数据透视表

    汇总表格式 详情表格式 要求根据汇总表中的信息,到详情表中查找详细物料的具体个数 最终,对物料的个数进行汇总,结果如下图: ExcelVba代码如下(有一些注释代码供参考) Sub Start() S ...

  8. MNIST机器学习入门

    "python: 3.5" # -*- coding: utf-8 -*-"""Created on Tue Oct 16 15:29:38 2018 ...

  9. web前端技术学习

    $.ajax() ajax数据请求方式,交互,跨域等相关问题 一.请求方式 1.$.ajax() $.ajax({ type:"get",//请求方式“get”和“post” ur ...

  10. 提示Unused default export错误,如何解决

    问题描述如下: 这个错误提示其实是webstorm的变量语法检查提示,修改一下它的配置就好了. 1.点击Webstorm右下角的小人,点击Configure inspections 2.在搜索框中输入 ...