加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 从数据集中获取过滤数据到数据表

发布时间:2020-12-15 18:25:03 所属栏目:百科 来源:网络整理
导读:如何将数据集中的数据过滤到数据表? 喜欢代码 – DataRow[] dr = DS.Tables[0] .Select("STAGENAME='Develop' AND DEVLAPSEDAYS IS NOT NULL"); 我如何在这里使用数据表? 以下代码并不反映变化 – DataTable FilteredDataD = DS.Tables[0];if (FilteredDat
如何将数据集中的数据过滤到数据表?
喜欢代码 – >
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(); 
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读