Sql 如何检查它是否';什么是空的?
我从数据库中检索数据,如下所示。如何检查从数据库检索的值是否为nullSql 如何检查它是否';什么是空的?,sql,vb.net,null,dataset,Sql,Vb.net,Null,Dataset,我从数据库中检索数据,如下所示。如何检查从数据库检索的值是否为null 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()) G
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是否为空。你是怎么做到的
If DBNull.Value.Equal(.Rows(int).Item("personId")) Then
...
您也可以使用常量。尝试检查空值:
Dim isPersonIDNull As Boolean = .Rows(0).IsNull("personId")
或使用:
或者手动检查该值是否等于DBNull:
Dim isPersonIDNull As Boolean = .Rows(int).Item("personId").Equals(DBNull.Value)
在将其分配给PersonID之前,必须检查该值是否为null 比如:
我建议将这段代码提取到一个helper方法中,该方法可以获取给定列的值或默认值。如果表中没有行,则会出现这种情况,此时ds.table(0).rows(int).Item(“personId”)将返回空引用异常 所以你必须使用两个条件
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")
我想这会解决你的问题。可能会出现一些小的语法变化
if .Rows(int).Item("personId") = DBNull.Value Then
' Assign some Dummy Value
PersonID = ""
else
PersonID = .Rows(int).Item("personId")
end if
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")