2

如果 a 中的一列DataRow可能是DBNull,以下是用空字符串替换 的最短方法DBNull吗?

Dim result As String = if(isDBNull(dataRow1("column1")), "", dataRow1("column1"))
4

3 回答 3

2

dataRow1("column1") & ""将在 VB 中产生所需的结果。

于 2013-07-25T03:09:32.477 回答
1

只需使用Field(Of T)方法,它将为您转换DBNullNothing。此外,它们是类型安全的。

Dim result = If(dataRow1.Field(Of String)("column1"), String.Empty)
于 2013-07-25T10:25:15.840 回答
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
于 2013-07-25T10:09:07.597 回答