Что такое нулевые значения и как я могу обработать их в SQLite

#vb.net #winforms #sqlite #null

#vb.net #winforms #sqlite #null

Вопрос:

Что такое нулевые значения?

введите описание изображения здесь

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

 txtMiddleName.Text = Reader.GetString(2)
  

Как я могу выразить это так, что если значение середины равно нулю, то

txtMiddleName.Text = ""

(Я уже читал другой пост «Обработка нулевых значений в SQLite, но не смог многого понять»)

Работа над VS 2010 (VB.net )

РЕДАКТИРОВАТЬ 1:

Это сообщение об ошибке, которое я получаю

введите описание изображения здесь (Строка 364 — это вышеупомянутый код)

Комментарии:

1. NULL это отсутствие значения , то есть отсутствие значения на самом деле…

2. Попробуйте это и скажите мне, работает ли это.. Читатель. Получаем значение(2). toString() ..

3. Нет, это так не работает, это все еще выдает ту же ошибку. Но условие if else работает

Ответ №1:

NULL означает, что полю не присвоено значение.

Пустое значение в MiddleName в третьей строке вашей таблицы является пустой строкой, а не a NULL .

Если вы ожидаете, что NULL будет значением объекта, вы можете проверить это, прежде чем присваивать другому.

В вашем примере вы должны проверить наличие значений DBNULL, подобных следующим:

 if (Reader.IsDBNull(2)) 
{
    // Do something ..
}
else
{
    // Do something else ..
}
  

Если вы не уверены в типе значения, которое пытаетесь получить, используйте следующее:

 Reader.GetValue(2).ToString()
  

Ответ №2:

Я думаю, вам следует проверить

 if(dread[2] != DBNull)
   //assign value
  

Ошибка возникает при попытке преобразовать нулевое значение базы данных в строку

Комментарии:

1. Это не будет компилироваться в VB.Net

Ответ №3:

Проверьте наличие null перед присвоением значения текстовому полю

 If(Not Reader.IsDBNull(2)) Then
     txtMiddleName.Text = Reader.GetString(2)
End If
  

Ответ №4:

существует константа с именем DBNull.value, которую вы можете использовать в сравнениях, чтобы определить, является ли это null или пустой строкой, строка типа «». Если вы используете строго типизированный адаптер данных, вы также можете использовать datatable.Есть функция Mid dlenamenull(), чтобы проверить, равно ли оно null.

Простое резюме: «» != null и null != DBNull

На самом деле, чтобы ответить на ваш вопрос, вы, вероятно, получаете значение DBNull, когда получаете строку из программы чтения. Итак, перед вызовом getString вам нужно убедиться, что значение не равно DBNull.value, а затем вызвать getstring.

Ответ №5:

Попробуйте это. Возможно, это поможет вам.

 Dim a As string
a = TextBox1.Text
If String.IsNullOrEmpty(TextBox1.Text) Then
    MessageBox.Show("Please enter Your  Middle name")
Else
    MessageBox.Show("your Middle name is " amp; a)
End If