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



我正在遍历DataRowCollection的行,并将每行的字段分配给一个变量。无论我如何转换,我总是得到"输入字符串格式不正确"。我只需要gapCd包含0,如果字段为空或值,否则。似乎IsDbNull没有正确返回true。我也尝试过DbNull。没有运气的价值比较。如有任何帮助,不胜感激。

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

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

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 

由于某种原因今天又看到了这个,在新的阅读中我很清楚,你所要做的就是从代码中删除一个"I"来将IIf()函数更改为If()运算符并强制短路计算:

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

最新更新