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