在我的节目,我有名为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