Checking db for null values

那年仲夏 提交于 2020-01-06 01:33:31

问题


I am trying to find a way to insert a message into a textbox if the entry in a table is null or blank. I have tried the following code, but the textbox is not displaying the message. I know I have coded wrong but cannot see it. Can someone please point out my error. Thanks

Private Sub UserDataGridView_CellContentClick(ByVal sender As System.Object,
                  ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) _
                                   Handles UserDataGridView.CellContentClick
  Dim value As Object = UserDataGridView.Rows(e.RowIndex).Cells(0).Value
  Dim NoEdit As Object = UserDataGridView.Rows(e.RowIndex).Cells(1).Value
  Dim InvCnt As Object = UserDataGridView.Rows(e.RowIndex).Cells(2).Value
  Dim InvAddress As Object = UserDataGridView.Rows(e.RowIndex).Cells(3).Value
  Dim Email As Object = UserDataGridView.Rows(e.RowIndex).Cells(4).Value
  Dim Tel As Object = UserDataGridView.Rows(e.RowIndex).Cells(5).Value
  Dim Fax As Object = UserDataGridView.Rows(e.RowIndex).Cells(6).Value

  txtCustomerActive.Text = CType(value, String)
  txtCustomerNoedit.Text = CType(NoEdit, String)
  txtInvoiceContact.Text = CType(InvCnt, String)
  txtInvoiceAddress.Text = CType(InvAddress, String)
  txtEmail.Text = CType(Email, String)
  txtCustomerTelephone.Text = CType(Tel, String)

  If Fax Is Nothing OrElse IsDBNull(Fax) Then
    txtCustomerFax.Text = "No Number on record" ' Display if no record
  Else
    txtCustomerFax.Text = CType(Fax, String)
  End If

  ' txtCustomerFax.Text = CType(Fax, String)
End Sub

回答1:


You need to test also for a blank string because IsDBNull checks only for DBNull values, not for a blank string

 If Fax Is Nothing OrElse IsDBNull(Fax) OrElse Fax = string.Empty Then
    .....   

MSDN says

IsDBNull returns True if the data type of Expression evaluates to the DBNull type; otherwise, IsDBNull returns False.

Interesting comment below from @Arion, he suggests to use string.IsNullOrEmpty. So you could rewrite the test with only two calls

 If IsDBNull(Fax) OrElse string.IsNullOrEmpty(Fax) then 

However it is important to test first for IsDBNull and then for IsNullOrEmpty because passing DBNull.Value to string.IsNullOrEmpty throws an exception



来源:https://stackoverflow.com/questions/19295156/checking-db-for-null-values

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!