如果DataRow
中的列可能是DBNull
,以下是将空字符串替换为DBNull
的最短方法吗?
Dim result As String = if(isDBNull(dataRow1("column1")), "", dataRow1("column1"))
答案 0 :(得分:2)
dataRow1("column1") & ""
将在VB中生成所需的结果。
答案 1 :(得分:1)
只需使用Field(Of T)
methods,即可将DBNull
值转换为Nothing
。此外,它们是类型安全的。
Dim result = If(dataRow1.Field(Of String)("column1"), String.Empty)
答案 2 :(得分:0)
您可能想要创建一个易于使用的扩展方法(未经测试):
Imports System.Data
Imports System.Runtime.CompilerServices
Module Extensions
<Extension()>
Public Function GetStringValue(dataRow As DataRow, columnName As String, Optional substituesForDBNull As String = Nothing) As String
If IsDBNull(dataRow(columnName)) Then
Return substituesForDBNull
End If
Return CStr(dataRow(columnName))
End Function
End Module