我从数据库中检索数据,如下所示。如何检查从数据库中检索的值是否为空?
Private Function GetBatch() As DataSet
Dim dataset As New DataSet
Dim adapter As Data.SqlClient.SqlDataAdapter
Dim cn As New System.Data.SqlClient.SqlConnection(connectionstring())
GetBatchCommand.Connection = cn
adapter = New Data.SqlClient.SqlDataAdapter(GetBatchCommand)
adapter.Fill(dataset)
Return dataset
End Function
Dim dataset As New DataSet
dataset = GetBatch()
With dataset.Tables(0)
Dim PersonID As String = .Rows(int).Item("personId")
我想检查personID是否为null。怎么办?
答案 0 :(得分:6)
尝试DataRow's IsNull method检查空值:
Dim isPersonIDNull As Boolean = .Rows(0).IsNull("personId")
或使用IsDBNull method:
Dim isPersonIDNull As Boolean = IsDBNull(.Rows(int).Item("personId"))
或手动检查值是否等于DBNull:
Dim isPersonIDNull As Boolean = .Rows(int).Item("personId").Equals(DBNull.Value)
答案 1 :(得分:3)
If DBNull.Value.Equal(.Rows(int).Item("personId")) Then
...
答案 2 :(得分:0)
您也可以使用Convert.DbNull常量。
答案 3 :(得分:0)
在将值分配给PersonID
之前,您必须检查该值是否为null像:
if .Rows(int).Item("personId") = DBNull.Value Then
' Assign some Dummy Value
PersonID = ""
else
PersonID = .Rows(int).Item("personId")
end if
我建议将这段代码提取到一个helper方法中,该方法获取给定列的值或默认值。
答案 4 :(得分:0)
如果表没有行,那么时间ds.Table(0).Rows(int).Item(“personId”)将返回null引用异常
所以你必须使用两个条件
Dim PersonID As String =""
if(ds.tables.count>0) Then
if(ds.tables(0).Rows.Count>0) Then
if(NOT DBNull.Value.Equal((ds.tables(0).Rows(int).Item("PersonID"))) Then
PersonID = ds.tables(0).Rows(int).Item("PersonID")
我认为它将解决您的问题。可能存在轻微的语法变化