обработка данных dbnull в vb.net - PullRequest
       37

обработка данных dbnull в vb.net

69 голосов
/ 21 октября 2008

Я хочу создать отформатированный вывод данных, извлеченных из базы данных MS-Access и сохраненных в объекте / переменной DataTable , myDataTable. Однако некоторые поля в myDataTable содержат dbNull данные. Итак, следующий фрагмент кода VB.net выдаст ошибки, если значение любого из полей фамилия , intials или sID равно dbNull .

   dim myDataTable as DataTable
   dim tmpStr as String
   dim sID as Integer = 1

   ...
   myDataTable = myTableAdapter.GetData() ' Reads the data from MS-Access table
   ...

   For Each myItem As DataRow In myDataTable.Rows

    tmpStr = nameItem("lastname") + " " + nameItem("initials")

    If myItem("sID")=sID Then
        ' Do something
    End If

    ' print tmpStr

   Next

Итак, как заставить приведенный выше код работать, когда поля могут содержать dbNull без необходимости каждый раз проверять, являются ли данные dbNull, как в этот вопрос ?

Ответы [ 12 ]

0 голосов
/ 07 февраля 2014

Это ПО ДАЛЬНЕЙШЕМУ самый простой способ преобразовать DBNull в строку. Хитрость в том, что вы НЕ МОЖЕТЕ использовать функцию TRIM (которая была моей начальной проблемой) при обращении к полям из базы данных:

ДО (выданная ошибка msg):

Me.txtProvNum.Text = IIf(Convert.IsDBNull(TRIM(myReader("Prov_Num"))), "", TRIM(myReader("Prov_Num")))

ПОСЛЕ (больше сообщений об ошибках нет :-)):

Me.txtProvNum.Text = IIf(Convert.IsDBNull(myReader("Prov_Num")), "", myReader("Prov_Num"))
0 голосов
/ 11 августа 2013

Привет друзья

Это самый короткий метод для проверки db Null в DataGrid и преобразования в строку

  1. создайте событие проверки ячейки и напишите этот код
  2. Если Convert.ToString (dgv.CurrentCell.Value) = "" Тогда
  3. CurrentCell.Value = ""
  4. Конец, если
...