从数据集中过滤记录 [英] Filter records from dataset
本文介绍了从数据集中过滤记录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是我的数据集
Here is my dataset
Id prodid date subject
1 123 2011-12-16 00:41:59.000 test1
2 127 2011-12-15 00:41:59.000 test12
3 128 2011-12-14 00:41:59.000 test123
4 123 2011-12-16 00:41:59.000 test1
5 121 2011-12-10 00:41:59.000 test1234
我希望o/p为
I want o/p as
1 123 2011-12-16 00:41:59.000 test1
2 127 2011-12-15 00:41:59.000 test12
3 128 2011-12-14 00:41:59.000 test123
5 121 2011-12-10 00:41:59.000 test1234
或
or
2 127 2011-12-15 00:41:59.000 test12
3 128 2011-12-14 00:41:59.000 test123
4 123 2011-12-16 00:41:59.000 test1
5 121 2011-12-10 00:41:59.000 test1234
请在这里表示满意,我也希望将id字段用于绑定gridview
[edit]已删除SHOUTING,添加了代码块,将我的内容作为纯文本格式..."选项已禁用-OriginalGriff [/edit]
Please suugest here I want id field as well for binding gridview
[edit]SHOUTING removed, Code block added, "Treat my content as plain text..." option disabled - OriginalGriff[/edit]
推荐答案
更改您的sql选择命令
change your sql select command
select t.ID, t.ProdID, t.Date, t.Subject
from
(
select Row_number() over(order by subject) as rowno, ID, prodid, date, subject
from mytable
} as t
where t.rowno = 1
您可以在这里使用LINQ.
首先,编写查询以获取如下所示的不同值
vardistinctRows =(从ds.Tables [0] .AsEnumerable()中的行开始
将行< Int16>("ID")逐行分组
选择grouping.FirstOrDefault());
然后将结果值复制到数据表中,
DataTable dt = uniqueRows.CopyToDataTable();
该数据表将具有不同的记录,并根据ID进行过滤
如有任何疑问,请返回
You can make use of LINQ here.
First, write a query to get distinct values as given below
var distinctRows = (from row in ds.Tables[0].AsEnumerable()
group row by row.Field<Int16>("ID") into grouping
select grouping.FirstOrDefault());
Then copy result value to a datatable,
DataTable dt = distinctRows.CopyToDataTable();
This datatable will have distinct records, filtered based on ID
for any clarification, revert back
这篇关于从数据集中过滤记录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文