【发布时间】:2014-10-06 05:27:59
【问题描述】:
早安
我似乎无法在 Null 比较中使用我的数据集 我正在尝试发表声明(尝试如下),它只会在我的数据集为空时继续我的代码。
代码 1:
if ((string)dts.Tables[0].Rows[0]["RECID"] != null)
^ 只是跳过我的 if,我知道它是空的(检查了我的手表),即使它为 null 仍然继续。
代码 2:
long Recid = 0;
Boolean checkrecid = long.TryParse((string)dts.Tables[0].Rows[0]["RECID"], out Recid);
if (checkrecid == false)
^ 在我的 Tryparse 上崩溃。我知道你可以使用 Try catch,但我不想使用它,因为它会使我的程序运行速度变慢,而且它需要每天读取 10000 行......
错误:
A first chance exception of type 'System.IndexOutOfRangeException' occurred in System.Data.dll
意思是它什么都找不到,但我已经知道了。
编辑: 我不想出错。任何以前的方法,在其他情况下都有效,都会返回 indexoutofrange 错误。我会添加这个.. 数据集填充了来自 SQL 服务器的基于电话号码和其他数据的数据。 如果他找不到来自文本文件的电话号码,他将不返回任何内容,不返回行,不返回列,什么都没有。
提前致谢, DZ
【问题讨论】:
-
(string)dts.Tables[0].Rows[0]["RECID"]的字符串值是什么,我猜它不为空,这就是为什么您的原始检查不起作用,也许是空字符串?那么检查((string)dts.Tables[0].Rows[0]["RECID"] != "")是否可行? -
你可以试试
if(!(dts.Tables[0].Rows[0]["RECID"] is DBNull))吗? -
对于第一行,您是否尝试与
string.Empty进行比较而不是null? -
行 {System.Data.DataRowCollection} System.Data.DataRowCollection Count 0 int
-
两次没有人..它仍然给我错误
标签: c# null dataset comparison