如果我有一个DataRow
值并且我想将它分配给一个String
变量,那么以下是一种有效的方法来执行此操作并在DataRow
值为时分配一个空字符串Null
?
Dim string1 As String = If(myDataRow("column1"), "")
如果我有一个DataRow
值并且我想将它分配给一个String
变量,那么以下是一种有效的方法来执行此操作并在DataRow
值为时分配一个空字符串Null
?
Dim string1 As String = If(myDataRow("column1"), "")
您的代码将不起作用,因为myDataRow("column1")
is not Nothing
but DBNull.Value
。
我会使用Field
也支持可空类型的强类型扩展方法;
Dim string1 = If(myDataRow.Field(Of String)("column1"), "")
如果您想使用旧方式:
Dim string1 = If(myDataRow.IsNull("column1"), "", DirectCast(myDataRow("column1"), String))
我建议创建一个这样的函数:
Shared Function DBNull2Space(ByVal objValue As Object) As Object
If IsDBNull(objValue) Then
DBNull2Space = Space(0)
Else
DBNull2Space = objValue
End If
End Function
这是对函数的调用:
Dim strTest as String = DBNull2Space(myDataRow("column1"))
尝试这个 ..
Dim string1 As String = If(IsDBNull(myDataRow.Item("column1")), "",myDataRow.Item("column1"))