Mog*_*gli 1 c# linq asp.net datatable
在我的情况下,我传递一个SQL查询并获取数据集中的数据,但当我尝试获取ParentId列包含NULL的行时出现问题.这是一段代码.
DataSet ds = GetDataSet("Select ProductId,ProductName,ParentId from ProductTable");
//ds is not blank and it has 2 rows in which ParentId is NULL
DataRow[] Rows = ds.Tables[0].Select("ParentId IS NULL");
Run Code Online (Sandbox Code Playgroud)
但我仍然没有得到任何行.需要帮忙.感谢名单.
Tim*_*ter 12
使用强类型DataRow扩展方法Field,该方法也支持可空类型:
IEnumerable<DataRow> rows = ds.Tables[0].AsEnumerable()
.Where(r => !r.Field<int?>("ParentId").HasValue);
Run Code Online (Sandbox Code Playgroud)
请注意,我使用了Enumerable.Where哪种Linq扩展方法来过滤表.
如果你想要一个数组使用ToArray,如果你想要一个新DataTable用途CopyToDataTable.如果您只想枚举结果使用foreach.
foreach(DataRow row in rows)
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
var rowsWithoutParent = dt.AsEnumerable().Where(r => r["ParentId"] == null);
var rowsWithParent = dt.AsEnumerable().Where(r => r["ParentId"] != null);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25820 次 |
| 最近记录: |