用空字符串替换DBNull的最佳方法是什么?

时间:2013-07-25 01:04:12

标签: .net vb.net if-statement datarow dbnull

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

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

3 个答案:

答案 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