在我的程序中,我有一个名为 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”的是/否字段,我在更新声明中没有提及。使用更新功能时,我是否必须为每个字段提供值,即使是那些没有被更改的字段?
感谢阅读,希望对您有所帮助!