C#中DataTable实现筛选查询的示例

 更新时间:2023年04月12日 10:30:01   作者:划]破  
本文主要介绍了C#中DataTable实现筛选查询的示例,主要是DataTable进行过滤筛选,常用的一些方法为:Select,dataview,具有一定的参考价值,感兴趣的可以了解一下

说明:

DataTable进行过滤筛选,常用的一些方法为:Select,dataview

1. 直接循环遍历获取

//  假设dt是由"SELECT C1,C2,C3 FROM T1"查询出来的结果 
DataTable dt = new DataTable();
for (int i = 0; i < dt.Rows.Count; i++) 
{ 
    if (dt.Rows[i]["C1"].ToString() == "abc")//查询条件 
    { 
        //进行操作 
    } 
}

2. 使用LinQ

// DataTable.Select(条件[和Db的Sql筛选基本相似])
DataTable dt = new DataTable();
DataRow[] drArr = dt.Select(" C1='abc' ");    //查询
//DataTable.Select( "ID=" + id )
//多条件,如:DataTable.Select("ID=" + id +" and name=" +name)

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

// DataRow如何转为DataTable呢?
//        思路:DataRow赋值给新的DataTable
DataTable dtNew = dt.Clone();  
for (int i = 0; i < drArr.Length; i++)  
{  
    dtNew.ImportRow(drArr[i]); 
}

3. 利用DataView的RowFilter 实现筛选

DataTable dataSource = new DataTable(); 
DataView dv = dataSource.DefaultView; 
dv.RowFilter = "columnA = 'abc'"; 
//1.过滤后直接获取DataTable 
DataTable newTable1 = dv.ToTable(); 
//2.设置新DataTable的TableName 
DataTable newTable2 = dv.ToTable("NewTableName"); 
//3.设置新表是否过滤重复项,拥有的列的列名以及出现的顺序 
//即可以设置新表的字段。但是字段名肯定是老表dataSource中拥有的。 
DataTable newTable3 = 
dv.ToTable(true, new string[] { "columnA,columnF,columnC" }); 
//4.综合了2.3两点。 
DataTable newTable4 = 
dv.ToTable("NewTableName", true, new string[] { "columnA,columnF,columnC" });

到此这篇关于C#中DataTable实现筛选查询的示例的文章就介绍到这了,更多相关C# DataTable筛选查询内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#高效反射调用方法类实例详解

    C#高效反射调用方法类实例详解

    在本篇文章中小编给大家分享的是关于C#高效反射调用方法类的相关实例内容,有兴趣的朋友们学习下。
    2019-07-07
  • C#通过yield实现数组全排列的方法

    C#通过yield实现数组全排列的方法

    这篇文章主要介绍了C#通过yield实现数组全排列的方法,以实例形式较为详细的分析了全排列的概念及C#的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • C# 设计模式系列教程-代理模式

    C# 设计模式系列教程-代理模式

    代理模式对客户端来说,隐藏了真实对象的细节及复杂性,实现了客户端(调用者)与真实对象的松耦合,提高了运行速度。
    2016-06-06
  • C#学习基础概念二十五问 11-15

    C#学习基础概念二十五问 11-15

    C#学习基础概念二十五问 11-15...
    2007-04-04
  • C#动态调整数组大小的方法

    C#动态调整数组大小的方法

    这篇文章主要介绍了C#动态调整数组大小的方法,涉及C#中静态方法CreateInstance的使用技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • unity实现摄像头跟随

    unity实现摄像头跟随

    把这个脚本赋给你的摄像机,再把游戏角色赋给character变量,之后就能实现摄像机平滑的跟随player在地球的任一角落了。有需要的小伙伴可以参考下。
    2015-03-03
  • 深入理解C# 装箱和拆箱(整理篇)

    深入理解C# 装箱和拆箱(整理篇)

    通过装箱和拆箱操作,能够在值类型和引用类型中架起一做桥梁.换言之,可以轻松的实现值类型与引用类型的互相转换
    2017-08-08
  • 详解C#多线程之线程同步

    详解C#多线程之线程同步

    本文主要介绍了C#线程同步的相关知识。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • C#并发编程之async和await关键字详解

    C#并发编程之async和await关键字详解

    对于 async 和 await 两个关键字,对于一线开发人员再熟悉不过了,到处都是它们的身影,下面小编就来和大家记录汇总下它们的使用吧
    2023-07-07
  • C# 获取 PC 序列号的方法示例

    C# 获取 PC 序列号的方法示例

    这篇文章主要介绍了C# 获取 PC 序列号的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07

最新评论