如何检查它是否为空?

时间:2009-09-21 08:30:35

标签: sql vb.net null dataset

我从数据库中检索数据,如下所示。如何检查从数据库中检索的值是否为空?

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。怎么办?

5 个答案:

答案 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
...

DBNull

答案 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")

我认为它将解决您的问题。可能存在轻微的语法变化