Что такое значения NULL и как я могу их обработать в SQLite - PullRequest
2 голосов
/ 26 апреля 2011

Что такое значения NULL?

enter image description here

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

txtMiddleName.Text = Reader.GetString(2)

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

txtMiddleName.Text = ""

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

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

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

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

enter image description here (строка 364 - вышеуказанный код)

Ответы [ 5 ]

3 голосов
/ 26 апреля 2011

NULL означает, что для поля нет назначенного значения.

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

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

В вашем примере вы должныпроверьте значения DBNULL , например:

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

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

Reader.GetValue(2).ToString()
1 голос
/ 26 апреля 2011

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

Простой итог: ""! = Null and null! = DBNull

Чтобы действительно ответить на ваш вопрос, вы, вероятно, получаете значение DBnull, когда получаете строку от читателя.Поэтому перед вызовом getString вам нужно убедиться, что значение не DBNull.value, а затем вызвать gettring.

1 голос
/ 26 апреля 2011

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

If(Not Reader.IsDBNull(2)) Then
     txtMiddleName.Text = Reader.GetString(2)
End If
1 голос
/ 26 апреля 2011

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

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

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

0 голосов
/ 31 мая 2012

Попробуйте это.Пусть это поможет вам.

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 " & a)
End If 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...