DataView.RowFilter筛选DataTable中的数据


//定义一个DataView ,得到一个全部职员的视图
DataView dataView1 = DbHelperSQL.QueryDataView(sql);

//过滤得到一个只显示男职员的视图
dataView1.RowFilter = " sex=‘男‘ ";

//放弃过滤,现在仍然能够得到一个全部职员的视图
dataView1.RowFilter = null;

//现在过滤得到一个只显示女职员的视图
dataView1.RowFilter = " sex=‘女‘ ";

//获取性别字段为空的职员
dataView1.RowFilter = " sex is null ";
//或者
dataView1.RowFilter = " Isnull( sex, ‘Null Column‘) = ‘Null Column‘ ";

//获取时间为空(NULL)和非空的视图
dataView1.RowFilter = " AddTime is null ";//空
dataView1.RowFilter = " AddTime is not null ";// 非空
//或者这里也可以先用Convert将日期时间(DateTime)字段转为字符串,然后做空值比较
dataView1.RowFilter = " Isnull( Convert(AddTime, ‘System.String‘),‘Null Column‘) = ‘Null Column‘ "; //空
dataView1.RowFilter = " not ( Isnull( Convert(AddTime, ‘System.String‘),‘Null Column‘) = ‘Null Column‘ ) "; // 非空

DataTable dt = DataView.ToTable();正确的。

DataTable dt = DataView.Table; 获取的是原来构造DataView的那个原表(没有过滤之前的那个表)。


点在于DataView是DateTable相关联 的一个视图而已,无论你如何使用RowFilter,DataView虽然被改变,但
DateTable数据不会减少,所以你不要幻想连续使用多个RowFilter
来得到叠加过滤的效果,一个DataView只支持一个RowFilter,你只能使用 not ,and 来连接多个过滤条件。

--------------------------------------------------------------------------------------------------------------------------

若要形成 RowFilter 值,请指定列的名称,后跟一个运算符和一个要筛选的值。 该值必须用引号括起来。 例如:

"LastName = ‘Smith‘"

若要只返回那些具有 null 值的列,请使用以下表达式:

"Isnull(Col1,‘Null Column‘) = ‘Null Column‘"

下面的示例创建 DataView 并设置它的 RowFilter 属性。

private void MakeDataView()  {           DataView view = new DataView();            view.Table = DataSet1.Tables["Suppliers"];           view.AllowDelete = true;           view.AllowEdit = true;           view.AllowNew = true;           view.RowFilter = "City = ‘Berlin‘";           view.RowStateFilter = DataViewRowState.ModifiedCurrent;           view.Sort = "CompanyName DESC";            // Simple-bind to a TextBox control           Text1.DataBindings.Add("Text", view, "CompanyName"); } 
时间: 2024-10-26 20:27:32

DataView.RowFilter筛选DataTable中的数据的相关文章

.Net多个DataTable合并,及过滤掉DataTable中重复数据行

DataTable dt01= new DataTable(); DataTable dt02= new DataTable(); DataTable dtRs = new DataTable(); dt01=sqlHelper.GetDataTable(strSQL001) dt02=sqlHelper.GetDataTable(strSQL002) //数据表dt02与dt01合并 dt01.Merge(dt02); //多个表合并可能产生重复数据,过滤掉重复数据 DataView dv =

Sliverlight linq中的数组筛选数据库中的数据

首先 什么是linq呢 ? LINQ即Language Integrated Query(语言集成查询),LINQ是集成到C#和Visual Basic.NET这些语言中用于提供查询数据能力的一个新特性. 它是.NET框架的扩展,它允许我们以数据库查询的方式查询数据集合. 借助于LINQ技术,我们可以使用一种类似SQL的语法来查询任何形式的数据. 接下来讲讲我工作中用到的 linq中的数组筛选数据库中的数据 public List GetList1(string cardPhone,string

操作DataTable中的数据

在项目中,经常会遇到这样的问题.用SQL从数据库中选出需要的数据存入DataTable之后,需要进行一定的处理之后,才可以用来显示在页面上. 之前对这些问题,都是遇到一个就百度一个,没有系统的处理这些问题,今天就写个文档来处理一下这个问题 先来几个简单的喽. 添加列和行: (既然是整理, 那就写全一点吧,三个方法) #region 方法一: DataTable tblDatas =new DataTable("Datas"); //表名 DataColumn dc =null; dc

使用SqlBulkCopy将DataTable中的数据批量插入数据库中

#region 使用SqlBulkCopy将DataTable中的数据批量插入数据库中 /// <summary> /// 注意:DataTable中的列需要与数据库表中的列完全一致. /// </summary> /// <param name="conStr">数据库连接串</param> /// <param name="strTableName">数据库中对应的表名</param> //

如何从一个DataTable中复制数据行到另一个DataTable中

DataTable dt = ""; //这里是填充DataTable数据 DataTable dtNew = dt.Copy(); //复制dt表数据结构 dtNew.Clear() //清楚数据 for (int i = 0; i < dt.Rows.Count; i++) { if (条件语句) { dtNew.Rows.Add(dt.Rows[i].ItemArray); //添加数据行 } } ===前提:我们已经有一个DataTable的数据表 现在需要的只是其中的一

怎样简单灵活地将DataTable中的数据赋值给model

最近在做的一个项目中,有13个方法都需要用到同一种处理方式:通过SQL语句从数据库获取一条指定的数据,并将该数据中的每个值都赋值给一个model,再将这个model中的数据通过微信发送出去.每个方法都会从不同的表中获取数据,需要处理的数据完全不同,因此也对应了13个不同的model.这些model中的每个属性名称是已经给定的,需要将它们post出去,使用微信给定的模板发送消息,因此每个属性的名称必须与微信提供的模板中一致. 下面举个简单的例子来说明当前的情况: SQL Server中用来存放数据

DataTable中的数据赋值给model z

create table memberinfo ( member_id int, member_name varchar(20), member_birthday varchar(50) ) go /// <summary> /// 微信消息中的参数 /// </summary> public class wechatouputpara { private String _name = ""; /// <summary> /// 会员姓名 /// &

筛选DataTable中数据的方法

当你从数据库里取出一些数据,然后要对数据进行整合,你很容易就会想到: 1 DataTable dt = new DataTable();//假设dt是由"SELECT C1,C2,C3 FROM T1"查询出来的结果 2 for (int i = 0; i < dt.Rows.Count; i++) 3 { 4 if (dt.Rows[i]["C1"].ToString() == "abc")//查询条件 5 { 6 //进行操作 7 }

C#中,当从数据库中查询到数据,以DataTable类型返回后,如果需要对DataTable中的数据进行筛选,可以选择下面的方式

DataRow[] dr = _deptCodeDt.Select(string.Format(" ward_code = '{0}'", LocalSetting.WardCode)); if (dr.Length <= 0) return; DataTable tempT = new DataTable(); tempT = dr[0].Table.Clone(); //克隆表结构 DataSet tempDs = new DataSet(); tempDs.Tables.A