bool? isSiteExists = null;
isSiteExists = true;
isSiteExists = false;
isSiteExists = dtData.AsEnumerable().Any(Rowx => Value1 == Rowx.Field<string>("ColValue1"));
也试过这个
bool? isSiteExists = dtData.AsEnumerable().Any(Rowx => Value1 == Rowx.Field<string>("ColValue1"));
也无法正常工作
运行时错误
类型&#39; System.ArgumentNullException&#39;的异常发生在System.Data.DataSetExtensions.dll中,但未在用户代码中处理
附加信息:值不能为空。
据我所知,&#34;?&#34;是支持空值。
什么是正确的语法...
提前致谢
答案 0 :(得分:1)
如果你得到ArgumentNullException
,可能是因为dtData
出了问题。
答案 1 :(得分:0)
看起来问题与bool无关?类型。
我认为问题在于dtData.AsEnumerable()或者可能在你的lambda中Rowx =&gt; Value1 == Rowx.Field(&#34; ColValue1&#34;)
更多dtData.AsEnumerable()。任何(...)永远不会返回null。它看起来像
bool Any(这个IQueryable来源,Expression&gt;谓词)
如果您在出现问题时尝试获取null,则应使用异常处理。
答案 2 :(得分:0)
你得到的例外不是引用可以为空的布尔值,它被赋值的右侧抛出,因为这部分内容是:
dtData.AsEnumerable().Any(Rowx => Value1 == Rowx.Field<string>("ColValue1"));
为空。
由于异常是在System.Data.DataSetExtensions.dll中引发的,我猜测它来自AsEnumerable()
方法,而dtData
为空。
您可以通过在行上放置一个断点并检查调试器中dtData
的值来轻松检查这一点。