[英]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.