接受空值,尽管有if条件

时间:2018-12-21 10:08:02

标签: vb.net

我想将值保存到MySQL数据库。

我检查了数据库是否不应插入空值。我有三个文本框,并检查文本框的值是否为null,然后显示一条消息,指出null值是不可接受的。

问题是,当我第一次加载表单时,按下插入按钮后它可以正常工作,但是第二次它接受插入到数据库中的空值。

我的代码是:

If TextBox1.Text = "" And TextBox2.Text = "" And TextBox3.Text = "" And ComboBox1.Text = "" Then
    MessageBox.Show("please write data", "Input Error")
    TextBox1.Focus()
Else
    // my program body      
end if

但是当我第二次单击插入按钮时,它不会读取文本框的值是否为空的条件……

3 个答案:

答案 0 :(得分:2)

我认为文本框的值第二次为空时,它们可能包含一些空格。因此,在使用文本框之前,您必须先修剪文本框中的文本,如下面的代码所示。您还应该在if语句中将And更改为Or,否则除非所有文本框都为空,否则它将不会执行。

 If Trim(TextBox1.Text) = "" Or Trim(TextBox2.Text) = "" Or Trim(TextBox3.Text) = "" Or Trim(ComboBox1.Text) = "" Then
    MessageBox.Show("please write data", "Input Error")
    TextBox1.Focus()
 Else
  'my program body      
 end if

答案 1 :(得分:1)

TextBox的默认Text属性为空字符串,而不是null值。那不是你的情况。为了验证您的数据,您必须将@运算符替换为OR,如@preciousbetine所述。

如果使用AND运算符,则所有文本框都必须为空才能返回错误。

答案 2 :(得分:0)

如果您不希望将NULL值添加到数据库中,也可以ALTER表,并在所需的列中添加默认值。这是一个示例(用于SQL Server):

ALTER TABLE dbo.TABLE  
ADD CONSTRAINT   A_CONSTRAINT DEFAULT 50 FOR YOUR_DESIRED_COLUMN ;