Sql 如何检查它是否';什么是空的?

Sql 如何检查它是否';什么是空的?,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

我从数据库中检索数据,如下所示。如何检查从数据库检索的值是否为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())
        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")