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或空白文本框..
答案 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()