什么是NULL值?
有时当我尝试将变量分配给变量时,我会收到错误说明Type-Cast-Error。
txtMiddleName.Text = Reader.GetString(2)
如果中间的价值不算那么我怎么说呢
txtMiddleName.Text = ""
(我已经阅读了另一篇文章“在SQLite中处理NULL值,但无法弄清楚”)
使用VS 2010(VB.net)
编辑1 :
这是我收到的错误消息
(第364行是上述代码)
答案 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