如何将数据集中的数据过滤到数据表?
喜欢代码 – >
喜欢代码 – >
DataRow[] dr = DS.Tables[0] .Select("STAGENAME='Develop' AND DEVLAPSEDAYS IS NOT NULL");
我如何在这里使用数据表?
以下代码并不反映变化 – >
DataTable FilteredDataD = DS.Tables[0]; if (FilteredDataD.Rows.Count > 0) { FilteredDataD.DefaultView.RowFilter = "STAGENAME='Develop' AND DEVLAPSEDAYS IS NOT NULL"; FilteredDataD.DefaultView.ToTable(); }
是否可以使用上面的过滤器删除列,例如“STAGENAME =’Develop’和DEVLAPSEDAYS IS NOT NULL”FilteredDataD.column(“col_name”)…
假设我有5列只显示4,我不能从我的查询中删除col_name.有办法吗?
答复
解决方法
尝试使用LINQ代替:
var table = DS.Tables[0].AsEnumerable().Where( r => r.Field<string>("STAGENAME") == "Develop" && r.Field<int?>("DEVLAPSEDAYS").HasValue).AsDataView().ToTable();
编辑将AsDataView更改为AsDataView()以获得语法准确性.
编辑提供了.NET 2.0兼容的解决方案
DataTable table = DS.Tables[0]; if (table.Rows.Count > 0) { table.DefaultView.RowFilter = "STAGENAME = 'DEVELOP' AND DEVLAPSEDAYS IS NOT NULL"; table = table.DefaultView.ToTable(); }