如何从数据库中处理null ..?

时间:2014-02-04 06:59:42

标签: vb.net

 Dim cmd As New SqlCommand("SELECT * FROM enroll WHERE id = '" & idtxt.Text & "'", conn)
            Dim rdr As SqlDataReader = cmd.ExecuteReader
            rdr.Read()
            fnametxt.text = rdr("fname")
            lnametxt.text = rdr("lname")
            rdr.close()

当它返回一个非空值时,这个东西有效..但是我的一些值为null ..而且一切都搞砸了......如何处理空值?就像值为null一样,它只返回null或空白文本框..

2 个答案:

答案 0 :(得分:0)

像这样使用Convert.IsDBNull()

If Not Convert.IsDBNull( rdr("fname") ) Then
    fnametxt.text = rdr("fname")
End If

它测试数据库中的字段是否包含数据库空值,这与.NET null值不同。

答案 1 :(得分:0)

首先,像这样处理数据库中的NULL和EMPTY值

Dim cmd As New SqlCommand("SELECT NULLIF(fname,''),NULLIF(lname,'') FROM enroll WHERE id = '" & idtxt.Text & "'", conn)

现在它将返回有效值或空值,因此您需要在

后面的代码中处理Null值

在此方案中使用以下函数:

Public Shared Function NoNull(ByVal checkValue As Object, ByVal returnIfNull As Object) As Object
    If checkValue Is DBNull.Value Then
        Return returnIfNull
    Else
        Return = checkValue
    End If
End Function

您的代码看起来像这样:

 Dim rdr As SqlDataReader = cmd.ExecuteReader
 rdr.Read()
 fnametxt.text =NoNull(rdr("fname"),"")
 lnametxt.text =NoNull(rdr("lname"),"")
 rdr.close()