0
我试图更新使用SQL查询的Access数据库,每当我点击保存按钮,它会产生一个错误错误的.ExecuteNonQuery()在SQL更新查询
类型的未处理的异常“ System.Data.OleDb.OleDbException'发生在System.Data.dll中
附加信息:没有给出一个或多个所需参数的值。
并突出显示.ExecuteNonQuery()
。你们能帮我解决吗?我是vb.net的新手。
在此先感谢。
Private Sub SaveButton_Click(sender As Object, e As EventArgs) Handles SaveButton.Click
Dim empNum As String
Dim empFname As String
Dim empLname As String
Dim empDept As String
Dim empStat As String
Dim empYears As String
empNum = eNumText.Text
empFname = empFnameText.Text
empLname = empLnameText.Text
empDept = DeptText.Text
empStat = StatText.Text
empYears = yearstext.Text
con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source= c:\Databse\Company_db.accdb"
con.Open()
MsgBox(empNum)
Dim SqlAdapter As New OleDbDataAdapter
Dim Table As New DataTable
Dim sqlQuery As String = "UPDATE tbl_empinfo SET EmpID='" & empNum & "', FirstName ='" & empFname & "', LastName='" & empLname & "', Department='" & empDept & "', Status='" & empStat & "', Years='" & empYears & "' WHERE EmpID ='" & empNum & "' "
Using cmd As New OleDbCommand(sqlQuery, con)
With cmd
.CommandText = sqlQuery
.Connection = con
.Parameters.AddWithValue("EmpID", empNum)
.Parameters.AddWithValue("FirstName", empFname)
.Parameters.AddWithValue("LastName", empLname)
.Parameters.AddWithValue("Department", empDept)
.Parameters.AddWithValue("Status", empStat)
.Parameters.AddWithValue("Years", empYears)
.ExecuteNonQuery()
End With
End Using
sqlQuery = "SELECT * FROM tbl_empinfo "
Dim cmd1 As New OleDbCommand
Dim da As New OleDbDataAdapter
With cmd1
.CommandText = sqlQuery
.Connection = con
With SqlAdapter
.SelectCommand = cmd1
.Fill(Table)
End With
With DataGridView1
.DataSource = Table
End With
End With
con.Close()
End Sub
我仍然得到这个埃罗“型System.Data的”未处理的异常。在System.Data.dll中发生OleDb.OleDbException' 其他信息:没有给出一个或多个必需参数的值。“ highlight.ExecuteNonQuery():( – user3550659
确保SQL中的参数数量与AddWithValue语句的数量相匹配,并且顺序是正确的。如果其中一个文本框为空,请确保数据库允许在该列上有空值。 '没有为一个或多个必需的参数给出值'意味着它说什么,你指定了没有设置参数值的SQL。 – Plutonix
我检查它是正确的,是我的SQL语句正确使用VB.NET和Access Dim sqlQuery As String = “UPDATE tbl_empinfo”&_ “SET FirstName = empFname,LastName = empLname,Department = empDept,”&_ “Status = empStat,Years = empYears”&_ “WHERE EmpID = empNum”也许它的编码方式不同, Amper Sign Accepted? – user3550659