什么是NULL值以及如何在SQLite中处理它们

时间:2011-04-26 05:12:54

标签: vb.net winforms sqlite null

什么是NULL值?

enter image description here

有时当我尝试将变量分配给变量时,我会收到错误说明Type-Cast-Error。

txtMiddleName.Text = Reader.GetString(2)

如果中间的价值不算那么我怎么说呢

txtMiddleName.Text = ""

(我已经阅读了另一篇文章“在SQLite中处理NULL值,但无法弄清楚”)

使用VS 2010(VB.net)

编辑1

这是我收到的错误消息

enter image description here (第364行是上述代码)

5 个答案:

答案 0 :(得分:3)

NULL表示该字段没有指定值。

表格第三行中 MiddleName 中的空白值是一个空字符串,而不是NULL

如果您希望NULL成为对象的值,则可以在将其分配给其他人之前进行检查。

在您的示例中,您必须检查 DBNULL 值,如下所示:

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

如果您不确定要获取的值的类型,请使用以下命令:

Reader.GetValue(2).ToString()

答案 1 :(得分:1)

我认为你应该检查

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

在尝试将数据库空值转换为字符串

时发生错误

答案 2 :(得分:1)

在将值分配给文本框之前检查null

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

答案 3 :(得分:1)

有一个名为DBNull.value的常量,您可以在比较中使用它来确定它是空字符串还是空字符串,字符串如“”。如果使用强类型数据适配器,还可以使用datatable.IsMiddleNameNull()函数来查看它是否为空。

简单回顾: “”!= null 和 null!= DBNull

要实际回答您的问题,当您从阅读器获取字符串时,可能会获得DBnull值。因此,在调用getString之前,您需要确保该值不是DBNull.value,然后调用getstring。

答案 4 :(得分:0)

试一试。愿这对你有帮助。

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