将数据库值分配给String类型变量的最佳方法是什么?

时间:2013-07-09 07:36:49

标签: .net vb.net string if-statement null

如果我有一个DataRow值,并且我想将其分配给String变量,则以下是一种有效的方法,如果DataRow值,则指定一个空字符串是Null

Dim string1 As String = If(myDataRow("column1"), "")

3 个答案:

答案 0 :(得分:1)

由于myDataRow("column1")不是Nothing而是DBNull.Value,您的代码将无效。

我会使用强类型Field扩展方法,它也支持可空类型;

Dim string1 = If(myDataRow.Field(Of String)("column1"), "")

如果您想使用旧方式:

Dim string1 = If(myDataRow.IsNull("column1"), "", DirectCast(myDataRow("column1"), String))

答案 1 :(得分:0)

我建议创建一个这样的函数:

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"))

答案 2 :(得分:0)

试试这个..

Dim string1 As String = If(IsDBNull(myDataRow.Item("column1")), "",myDataRow.Item("column1"))