【发布时间】:2021-04-16 05:53:50
【问题描述】:
这是我为我的数据库输入记录的代码。如果我放一个副本,它只会终止程序。我的目标是放置一个显示错误的消息框,以便程序不会终止。
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
MysqlConn = New MySqlConnection("server=localhost; user=root; pwd=; database=payrollmanagement")
MysqlConn.Open()
command = New MySqlCommand("INSERT INTO emp_info(empID,lastname,firstname,MiddleInitial,Age,address,Position,ContactNumber,pay_type,gender,dept,email) Values ('" & TextBox1.Text & "','" & TextBox5.Text & "','" & TextBox6.Text & "','" & TextBox7.Text & "','" & TextBox11.Text & "','" & TextBox3.Text & "','" & TextBox10.Text & "','" & TextBox4.Text & "','" & TextBox8.Text & "','" & TextBox10.Text & "','" & TextBox2.Text & "','" & TextBox14.Text & "')", MysqlConn)
If (TextBox1.Text = "") Then
MessageBox.Show("Data not Inserted")
ElseIf (TextBox2.Text = "") Then
MessageBox.Show("Data not Inserted")
ElseIf (TextBox3.Text = "") Then
MessageBox.Show("Data not Inserted")
ElseIf (TextBox4.Text = "") Then
MessageBox.Show("Data not Inserted")
ElseIf (TextBox5.Text = "") Then
MessageBox.Show("Data not Inserted")
ElseIf (TextBox6.Text = "") Then
MessageBox.Show("Data not Inserted")
ElseIf (TextBox7.Text = "") Then
MessageBox.Show("Data not Inserted")
ElseIf (TextBox8.Text = "") Then
MessageBox.Show("Data not Inserted")
ElseIf (TextBox9.Text = "") Then
MessageBox.Show("Data not Inserted")
ElseIf (TextBox10.Text = "") Then
MessageBox.Show("Data not Inserted")
ElseIf (TextBox11.Text = "") Then
MessageBox.Show("Data not Inserted")
ElseIf (TextBox14.Text = "") Then
MessageBox.Show("Data not Inserted")
Else
command.ExecuteNonQuery()
MessageBox.Show("Data Inserted")
Shadows_load()
End If
End Sub
【问题讨论】:
-
这里有很多问题。您需要添加一个 try/catch 来捕获异常。但这是你的小问题。让我们尝试在您用于姓氏的文本框中添加一个单引号。或者更糟糕的是,让我们输入一些 sql 文本,例如 this comic。最后,为什么要让用户输入 ID?让数据库选择一个用 AUTOINCREMENT=True 标记列
-
只有使用参数化查询stackoverflow.com/questions/16167924/… 才能解决文本框值的字符串连接问题
-
您打开了一个连接,然后显示了十几个消息框。为什么?您在不允许用户更正问题的情况下执行命令。人脉是宝贵的资源。它们只能在执行前直接打开,并尽快关闭和处置。
标签: mysql database vb.net visual-studio