c# - 如何在某些情况下从数据表中选择全部?

标签 c# asp.net linq datatable filtering

我想在某些情况下从我的数据表中选择*并将返回值放在同一个数据表中。

 dt = from myRow in dt.AsEnumerable()
      where !string.IsNullOrEmpty( myRow.Field<string>("name") )
      select ;

我尝试类似上面的方法。

最佳答案

我从您的代码中可以看出,您希望删除“名称”字段为空的所有行。对吗?

你得到的结果不是直接你的新数据表。相反,你会得到一个 IEnumerable<DataRow>包含您想要查看的所有行。

相反,您可以反转包含您不喜欢的所有内容的 linq 查询的结果,然后只需从您的数据表中删除所有这些内容。

var rowsToDelete = dt.AsEnumerable()
                     .Where(row => String.IsNullOrEmpty(row.Field<string>("name"))
                     .ToList();

foreach(var row in rowsToDelete)
{
    dataTable.Rows.Remove(row);
}

关于c# - 如何在某些情况下从数据表中选择全部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8987133/

相关文章:

c# - 在 CoreFx 上使用 System.Data.SqlClient 时出现 UDT 不支持的 token 问题

c# - 在无限循环性能中声明变量类型?

c# - LINQ 表达式帮助 Func TEntity、TType

c# - Lambda 表达式为列表中的每个不同值返回一个结果

c# - 在 linq 查询中创建某种循环

c# - 如何从 WCF 操作契约(Contract)中检索客户端的机器名称?

c# - GDI+ 图像比 C# 图像快得多

c# - 将 float 显示到文本框类型 "number"

asp.net - session 和 cookie 是一回事吗?

c# - 向 Literal 控件添加换行符