2009-09-21 1 views
0

Я извлекаю данные из базы данных, как показано ниже. Как проверить, является ли значение, полученное из базы данных, нулевым?Как проверить, является ли оно нулевым?

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

Я хотел бы проверить, равен ли человекID. Как это сделать?

ответ

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) 
0

Вы должны проверить, значение равно null, прежде чем назначить его PersonID

нравится:

if .Rows(int).Item("personId") = DBNull.Value Then 
    ' Assign some Dummy Value 
    PersonID = "" 
else 
    PersonID = .Rows(int).Item("personId") 
end if 

Я бы рекомендовал, чтобы извлечь этот кусок кода в вспомогательный метод, который получает либо значение или значение по умолчанию для данного столбца.

0

может возникнуть эта ситуация, если таблица с нет строк, что время ds.Table (0) .Rows (интермедиат) .Item («PersonId») возвращает ссылку на нулевой Exception

так что вы должны использовать два условия

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

Я думаю, что это будет решать ваши issue..just незначительные изменения синтаксиса могут присутствовать