如何在一定条件下从数据表中全选
本文关键字:数据表 全选 条件下 | 更新日期: 2023-09-27 18:21:11
我想在某种条件下从我的数据表中Select *
,并将返回值放在同一数据表中。
dt = from myRow in dt.AsEnumerable()
where !string.IsNullOrEmpty( myRow.Field<string>("name") )
select ;
我试试上面的东西。
我从您的代码中可以看到,您喜欢删除字段"Name"为空的所有行。这是正确的吗?
您得到的结果并不是直接的新数据表。相反,您将得到一个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);
}
创建一个具有非null值的新对象:
DataTable dt2 = new DataTable();
dt.AsEnumerable().Where(row => !row.IsNull("name")).Select(row => { dt2.Rows.Add(row); return true; });
从现有对象中删除空值:
dt.AsEnumerable().Where(row => row.IsNull("name")).Select((row, index) => { dt.Rows.RemoveAt(index); return true; });
对现有对象进行更改:
dt.AsEnumerable().Where(row => row.IsNull("name")).Select((row, index) =>
{
System.Diagnostics.Debug.WriteLine("Name in Row # " + index + " is null.");
row["Status"] = "Disabled";
return true;
});