#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