我正在尝试从数据库读取数据时处理DBNull异常。
这是我的代码:

...
Dim SQLRDAs SqlDataReader
...
val1= GetStringFromDB(Trim(SQLRD("Name")))
val2= GetStringFromDB(Trim(SQLRD("Level")))
val2= GetStringFromDB(Trim(SQLRD("blahblah")))
...
Public Function GetStringFromDB(ByVal inputValue) As String
     Dim outputValue As String

     If IsDBNull(inputValue) Then
         outputValue = "null"
     Else
         outputValue = inputValue
     End If

     Return outputValue
End Function

但仍然出现Conversion from type 'DBNull' to type 'String' is not valid.错误。怎么了?

最佳答案

IsDBNull检查是否缺少值。它不等同于Nothing或String.Empty。
您确定您的inputValue包含DBNull.Value吗?

我将以这种方式更改您的代码:

 If String.IsNullOrEmpty(inputValue) OrElse IsDBNull(inputValue) Then
     outputValue = "null"

还要注意,您未指定inputValue的类型,在我的回答中,我假设为字符串

关于asp.net - 在VB.net中处理DBNull异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9818624/

10-13 07:08