处理VB.NET DataRow输入字符串的空值格式不正确

时间:2011-09-30 13:11:45

标签: asp.net .net database vb.net ado.net

我循环遍历DataRowCollection的行,并将每行的字段分配给变量。无论我如何投射,我总是得到“输入字符串格式不正确”。我只需要gapCd包含0,如果该字段为null或否则值。似乎IsDbNull没有正确返回true。我也尝试过DbNull.Value比较而没有运气。非常感谢任何帮助。

Dim gapCd As Integer = IIf(IsDBNull(row("GAP_CD")), 0, row("GAP_CD"))

1 个答案:

答案 0 :(得分:0)

请记住,作为值类型,Integer已初始化为零。所以试试这个:

Dim gapCd As Integer 
If Not IsDBNull(row("GAP_CD")) Then gapCd = CInt(row("GAP_CD")) 

如果这不起作用,是时候尝试一些日志记录了:

Dim gapCd As Integer
Try
    If Not IsDBNull(row("GAP_CD")) Then gapCd = CInt(row("GAP_CD"))
Catch Ex As Exception
    SomeLoggingFunction(row("GAP_CD").ToString())
End Try 

由于某些原因今天再次看到这一点,并且在新的阅读中我很清楚,您只需从代码中删除一个“我”,将IIf()函数更改为{{1}操作员和强制短路评估:

If()