如何在 vb.net 屏蔽文本框中插入空数据时设置条件



在使用屏蔽文本框插入日期时,我尝试提出 3 个条件。我尝试插入数据库的数据是护照日期,这不是要插入的必需数据,因为并非所有用户都有护照。第一个条件是当用户将护照日期留空时,空数据将被保存到数据库中。秒条件是当用户插入不真实的日期时,例如"29/02/2019",将显示一个消息框。最后,当用户输入正确的日期时,数据将被保存到数据库中。

我已经使用过"文本框。Text.Trim((.长度 = 0"语法,但条件不起作用。

Private Sub insert_Click(sender As Object, e As EventArgs) Handles insert.Click
'insert syntax
Dim insert_command As New MySqlCommand("INSERT INTO employee(StaffID, StaffName, ExpiredDate1) _
VALUES (@StaffID, @StaffName, @ExpiredDate1)", connection)
'insert staffid
If staffid.Text.Trim().Length > 0 Then
insert_command.Parameters.Add("@StaffID", MySqlDbType.VarString).Value = staffid.Text
End If
'insert staffname
If staffname.Text.Trim().Length = 0 Then
insert_command.Parameters.Add("@StaffName", MySqlDbType.VarString).Value = DBNull.Value
Else
insert_command.Parameters.Add("@StaffName", MySqlDbType.VarString).Value = staffname.Text
End If
'insert passport date
Dim dob As Date   
If edate1.Text.Trim().Length = 0 Then
insert_command.Parameters.Add("@ExpiredDate1", MySqlDbType.VarString).Value = DBNull.Value
ElseIf Date.TryParse(edate1.Text, dob) Then
insert_command.Parameters.Add("@ExpiredDate1", MySqlDbType.VarString).Value = edate1.Text
Else
MessageBox.Show("Invalid passport date", "Invalid Information", MessageBoxButtons.OK, _
MessageBoxIcon.Exclamation)
End If
End Sub

我得到的错误是当用户确实将日期屏蔽文本框保留为空时,它不会插入空数据,而是读取最后一个条件。我希望用户能够在不显示最后一个条件 msgbox 的情况下将空数据插入数据库。

在Visual Studio中,我可以在此行之前放置一个断点

If edate1.Text.Trim().Length = 0 Then

然后,当我在调试模式下执行代码并点击窗体上的按钮时,我可以将鼠标悬停在.Text函数上以查看文本字段包含的内容。

因为我还没有输入任何东西,它向我显示" / /".显然,即使是空值仍然具有掩码,因此.Length = 0不起作用。

最简单的方法是检查该字段是否仍然具有该默认值,但如果掩码发生更改,可能会导致问题。

当我将鼠标悬停在edate1变量上时(同时仍悬停在断点上(,我可以选择一个下拉列表,显示该变量的所有属性和方法。我注意到它有一个"MaskFull"和"MaskComplete",可能会有用(完整列表也可以在.Net Docs中看到(。

让我们测试一下:

If Not edate1.MaskFull Then
Debug.Print("Not full")
ElseIf Date.TryParse(edate1.Text, dob) Then
Debug.Print("Date!")
Else
Debug.Print("Not full, no date")
End If

输出

  • " / /""未满"。

  • "01/01/197""未满"。

  • "01/01/1970""约会!">

  • "12/34/1970""未满,无日期"。

相关内容

  • 没有找到相关文章

最新更新