到目前为止,我一直在尝试更新此记录近3天,在整个互联网上都找不到任何帮助我的东西,尝试了所有解决方案,但没有。
我想更新记录,表单名为search form
,表格由8列组成,其中student_id
是自动编号所以我没有搞砸它
这是我提出的最后一次,它仍然无效,它会突出显示executenonquery()
,并在按下按钮后显示错误消息,显示no values where given to one or more required parameters
...
Dim con As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Anton\Desktop\LoginDatabase\Users.mdb")
con.Open()
sql = "update salary set [empname]=?,[department]=?,[date1]=?, [accname]= ?,[accnumber]=?,[backname]=?,[rate]=?,[house]=?,[electricity]=?,[travel]=?, [hardship]= ?,[health]=?,[nhif]=?,[nssf]=?,[insurence]=?,[loan]=?,[welfare]=? where empno = ?"
Dim cmd As New OleDb.OleDbCommand(sql, con)
cmd.Parameters.AddWithValue("@empname", TextBox2.Text)
cmd.Parameters.AddWithValue("@department", TextBox3.Text)
cmd.Parameters.AddWithValue("@date1", DateTimePicker1.Value)
cmd.Parameters.AddWithValue("@accname", TextBox4.Text)
cmd.Parameters.AddWithValue("@accnumber", TextBox5.Text)
cmd.Parameters.AddWithValue("@bankname", TextBox6.Text)
cmd.Parameters.AddWithValue("@rate", TextBox7.Text)
cmd.Parameters.AddWithValue("@house", TextBox8.Text)
cmd.Parameters.AddWithValue("@electricity", TextBox9.Text)
cmd.Parameters.AddWithValue("@travel", TextBox10.Text)
cmd.Parameters.AddWithValue("@hardship", TextBox11.Text)
cmd.Parameters.AddWithValue("@health", TextBox12.Text)
cmd.Parameters.AddWithValue("@nhif", TextBox13.Text)
cmd.Parameters.AddWithValue("@nssf", TextBox14.Text)
cmd.Parameters.AddWithValue("@insurence", TextBox15.Text)
cmd.Parameters.AddWithValue("@loan", TextBox16.Text)
cmd.Parameters.AddWithValue("@welfare", TextBox17.Text)
cmd.Parameters.AddWithValue("@empno", TextBox1.Text)
Try
cmd.ExecuteNonQuery()
cmd.Dispose()
MsgBox("updated")
Catch ex As Exception
MsgBox(ex.Message)
End Try
答案 0 :(得分:1)
您的错误是您在SQL语句中拼写错误的BankName。 使用“[bankname] =?”。
但是,更换表单并使用Visual Studio的本机函数更容易,如下所示:
带有导航栏的表单会出现在您眼前。将创建一个由数据库名称组成的新DataSet。
对于以前的MS Access用户来说,这将是一个更直观的表单,您无需手动创建任何Insert语句,如上面的问题所示。