在我的節目,我有名爲runSQL函數時的錯誤,那就是:接收試圖更新記錄
Dim Connection As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=TrainingLog.accdb")
Dim DT As New DataTable
Dim DataAdapter As OleDb.OleDbDataAdapter
Connection.Open()
DataAdapter = New OleDb.OleDbDataAdapter(query, Connection)
DT.Clear()
DataAdapter.Fill(DT)
Connection.Close()
Return DT
我試圖在使用更新字符串數據庫更新記錄,從這個源代碼:
Dim sqlString As String
sqlString = "UPDATE UserRecords set FirstName = '" & txtName.Text
sqlString = sqlString & "', LastName = '" & txtSurname.Text
If ChkSmoker.Checked = True Then
sqlString = sqlString & "', Smoker = true"
ElseIf ChkSmoker.Checked = False Then
sqlString = sqlString & "', Smoker = false"
End If
sqlString = sqlString & ", Weight = " & txtWeight.Text
If RdoMale.Checked = True Then
sqlString = sqlString & ", Gender = 'm'"
ElseIf RdoFemale.Checked = True Then
sqlString = sqlString & ", Gender = 'f'"
End If
sqlString = sqlString & " WHERE UserName = '" & LstUsers.SelectedItem.ToString & "'"
runSQL(sqlString)
然而,一旦我點擊保存按鈕,我從runSQL功能的7號線的錯誤(不包括空行,所以這是DataAdapter.Fill方法(DT)線)說: 「沒有給出一個或多個必需參數的值。」
我想知道是否有人知道這是爲什麼或如何解決它。
我確實想到的一件事是,在更新的表中,除UPDATE語句中提到的字段外,還有其他字段。例如,有一個標題爲「TeamMember」的是/否字段,我在更新聲明中沒有提及。 當使用更新功能時,我是否必須爲每個字段提供值,即使那些沒有更改?
感謝您的閱讀,並希望有所幫助!
您使用TSQL嗎? – Hockenberry 2015-02-23 07:13:38
老實說我不知道。我剛剛在學校學習Visual Basic,並且我已經被告知要使用的SQL部分,而不是教給他們。 – DatBrummie 2015-02-23 07:16:07
您是否真的看過所有代碼生成的SQL語句?這將是首先要做的,看看它是否是你期望的。如果你看過,請告訴我們你看到了什麼。 – jmcilhinney 2015-02-23 07:19:06