2011-04-26 86 views
2

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

enter image description here

有时,当我尝试指派查询变量,我得到错误说类型转换错误。

txtMiddleName.Text = Reader.GetString(2) 

我怎样才能把它,如果中东的价值是什么,然后

txtMiddleName.Text = ""

(我已经读其他职位“处理Null值在SQLite的,但无法弄清楚多“)

工作于2010年VS(VB.net)

编辑1

这是错误消息我得到

enter image description here (364行是上面提到的代码)

+0

'NULL'是**没有价值** - 即没有价值的真... – 2011-04-26 05:27:46

+0

试试这个,告诉我,如果它的工作原理.. Reader.GetValue(2)的ToString().. – 2011-04-26 05:27:56

+0

不,它不是这样工作,它仍然会产生相同的错误。但是,如果其他条件正在工作 – 2011-04-26 05:38:01

回答

3

NULL意味着没有指派值到外地。

MiddleName在表的第三行中的空白值是空字符串,不是NULL

如果您期待NULL对象的值,则可以在将其分配给另一个对象之前对其进行检查。

在你的榜样,你必须检查的DBNull像下面值:

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

如果你不知道你正试图获得该值的类型,使用以下命令:

Reader.GetValue(2).ToString() 
+0

那么为什么我会得到类型转换错误? – 2011-04-26 05:17:59

+0

你可以请提供错误信息,因为它是.. – 2011-04-26 05:23:28

1

我想你应该检查

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

发生了误差,作为其努力的值赋给文本框之前,数据库空值转换为字符串

+0

这将不会在VB.Net编译 – 2011-04-26 19:32:13

1

检查空

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

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

简单回顾一下:! “” =空 和 空=的DBNull

要真正回答你的问题,你可能得到一个DBNull的值时,你都可以从读者的字符串。所以在调用getString之前,您需要确保该值不是DBNull。值,然后调用getstring。

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 
相关问题