对datatable数据进行条件筛选

时间:2022-08-10 03:01:39
datatable中有若干个字段,其中有两个列名为"姓名","日期",用这两个作为条件进行筛选
代码如下:
string name="";
string time="";

name = "姓名='" + cmbName.Text.Trim() + "'";
time += " and 日期='" + txtTime.Text.Trim() + "'";

  DataView dv =dt.DefaultView;  //dt是要进行条件筛选的原始数据
  dv.RowFilter = name+time;//   调试为    姓名='姓名1' and 日期='2013-11-08'

  System.Data.DataTable newTable=dv.ToTable();
  dgvAttendance.ItemsSource=newTable.AsDataView();

输入条件为原始数据中已有的数据存在条件,但调试后所得到的数据为空,不知原因,还请个位大神指点迷津~~

10 个解决方案

#1


datatable中的数据是什么样的?

分别用 
姓名='姓名1' 
日期='2013-11-08'

看哪个条件没数据

#2


单步调试,看是否得到值。

#3


dv.RowFilter 那个地方的查询条件有问题,最好是一次查询一个条件, 还有就是 条件变量要打引号,

也可以用另外一种查询  datarow dr = dt.select("条件","排序")

#4


推荐使用   
 dt.select("条件","排序")

#5


如果不考虑结果集的排序问题,推荐dt.Select()

#6


引用 1 楼 feiyun0112 的回复:
datatable中的数据是什么样的?

分别用 
姓名='姓名1' 
日期='2013-11-08'

看哪个条件没数据


都拿到值了

#7


引用 3 楼 zhang1struts1yun 的回复:
dv.RowFilter 那个地方的查询条件有问题,最好是一次查询一个条件, 还有就是 条件变量要打引号,

也可以用另外一种查询  datarow dr = dt.select("条件","排序")


你这个"条件"里面的格式是什么,

datarow dr = dt.select("姓名='姓名1' and 日期='2013-11-02'","排序")
是这个吗?

#8


datarow dr = dt.select("姓名='姓名1' and 日期='2013-11-02'","ASC")

#9



new DataTable().AsEnumerable().Where(d => d.Field<string>("姓名") == cmbName.Text && d.Field<string>("日期") == txtTime.Text);

#10


http://blog.csdn.net/conan8126/article/details/8178784

#1


datatable中的数据是什么样的?

分别用 
姓名='姓名1' 
日期='2013-11-08'

看哪个条件没数据

#2


单步调试,看是否得到值。

#3


dv.RowFilter 那个地方的查询条件有问题,最好是一次查询一个条件, 还有就是 条件变量要打引号,

也可以用另外一种查询  datarow dr = dt.select("条件","排序")

#4


推荐使用   
 dt.select("条件","排序")

#5


如果不考虑结果集的排序问题,推荐dt.Select()

#6


引用 1 楼 feiyun0112 的回复:
datatable中的数据是什么样的?

分别用 
姓名='姓名1' 
日期='2013-11-08'

看哪个条件没数据


都拿到值了

#7


引用 3 楼 zhang1struts1yun 的回复:
dv.RowFilter 那个地方的查询条件有问题,最好是一次查询一个条件, 还有就是 条件变量要打引号,

也可以用另外一种查询  datarow dr = dt.select("条件","排序")


你这个"条件"里面的格式是什么,

datarow dr = dt.select("姓名='姓名1' and 日期='2013-11-02'","排序")
是这个吗?

#8


datarow dr = dt.select("姓名='姓名1' and 日期='2013-11-02'","ASC")

#9



new DataTable().AsEnumerable().Where(d => d.Field<string>("姓名") == cmbName.Text && d.Field<string>("日期") == txtTime.Text);

#10


http://blog.csdn.net/conan8126/article/details/8178784