使用 LINQ 将空类型解析为 SQL
Resolving a null type with LINQ to SQL
首先道歉,我真的是 LINQ 的初学者,所以才问这个问题。
我无法从数据库中捕获空值。我正在制作 LINQ to DataTable。我正在检查 double 类型。
这是我的代码:
var results2 = from myRow in table.AsEnumerable()
where myRow.Field<double>("Cost") == 0
select myRow;
如果值为零,该代码可以正常工作。我如何让它也检查 null?
另一个问题也和这个问题有关:
我有这个代码:
var results = from myRow in table.AsEnumerable()
where myRow.Field<string>("Name") == "test"
select myRow;
如果该值为测试,则效果很好。如何检查 "Name" 列是否为 empty/null??
使用 ||
运算符添加 OR
条件。
对于可为 null 的 double case,除了检查 null 之外,您还需要检查它是否具有值并且是您期望的值。
var results2 = from myRow in table.AsEnumerable()
where (
myRow.Field<double?>("Cost").HasValue &&
myRow.Field<double?>("Cost").Value == 0)
|| !myRow.Field<double?>("Cost").HasValue
select myRow;
var results = from myRow in table.AsEnumerable()
where myRow.Field<string>("Name") == "test" ||
myRow.Field<string>("Name") == null
select myRow;
首先道歉,我真的是 LINQ 的初学者,所以才问这个问题。
我无法从数据库中捕获空值。我正在制作 LINQ to DataTable。我正在检查 double 类型。
这是我的代码:
var results2 = from myRow in table.AsEnumerable()
where myRow.Field<double>("Cost") == 0
select myRow;
如果值为零,该代码可以正常工作。我如何让它也检查 null?
另一个问题也和这个问题有关:
我有这个代码:
var results = from myRow in table.AsEnumerable()
where myRow.Field<string>("Name") == "test"
select myRow;
如果该值为测试,则效果很好。如何检查 "Name" 列是否为 empty/null??
使用 ||
运算符添加 OR
条件。
对于可为 null 的 double case,除了检查 null 之外,您还需要检查它是否具有值并且是您期望的值。
var results2 = from myRow in table.AsEnumerable()
where (
myRow.Field<double?>("Cost").HasValue &&
myRow.Field<double?>("Cost").Value == 0)
|| !myRow.Field<double?>("Cost").HasValue
select myRow;
var results = from myRow in table.AsEnumerable()
where myRow.Field<string>("Name") == "test" ||
myRow.Field<string>("Name") == null
select myRow;