繁体   English   中英

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

[英]Handling VB.NET DataRow Input string was not in a correct format for a null value

我正在遍历DataRowCollection的行,并将每行的字段分配给一个变量。 无论我如何强制转换,我总是会收到“输入字符串的格式不正确”的信息。 我只需要gapCd包含0,如果该字段为null或其他值。 似乎IsDbNull没有正确返回true。 我也尝试过DbNull.Value比较,但是没有运气。 任何帮助深表感谢。

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

请记住,作为值类型,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 

今天由于某种原因再次看到了这一点,从新读到的内容很清楚,我要做的就是从代码中删除一个“ I”以将IIf()函数更改为If()运算符并强制短路评估:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM