大家好我有以下查询。有时候,这个查询没有结果,我需要它返回0,而不是错误。
var count= dt.AsEnumerable().Where(x => x.Field<string>("names").Equals(name) && x.Field<string>("port").Equals("true")).Count();
我试过添加? 0,但编译器不喜欢这样。
感谢您的帮助!
答案 0 :(得分:2)
Enumerable.Count
不会抛出错误,它会返回0.您是否意味着dt
可以是null
?因此,DataTable
为null
或其中一个字符串为null
。您不需要使用String.Equals
,您可以使用==
来有意义地比较字符串,然后您就不会获得例外。您也可以使用Count
的重载:
if(dt == null) return 0;
return dt.AsEnumerable()
.Count(x => x.Field<string>("names") == name && x.Field<string>("port") == "true");
答案 1 :(得分:0)
这样做:
var count=dt != null ? dt.AsEnumerable().Where(x => x.Field<string>("names").Equals(name) && x.Field<string>("port").Equals("true")).Count() : 0;
在执行dt上的任何操作之前,它只会检查dt是否为空。
答案 2 :(得分:0)
数据库中为null时句柄大小写的Yoda比较:
var count= dt.AsEnumerable()
.Where(x => name.Equals(x.Field<string>("names"))
&& "true".Equals(x.Field<string>("port")))
.Count();