如何修复更新语句 vb.net 中的语法错误?

How to fix syntax error in update statement vb.net?

我的代码是:

Dim cmdUpdate As New OleDbCommand("Update Account Name'" & txtAccountName.Text & "', Age='" & txtAccountAge.Text & "', Degress='" & cboAccountDegress.Text & "', Birthday='" & txtAccountBirthday.Text & "', Address='" & txtAccountAddress.Text & "', Number='" & txtAccountNumber.Text & "', Gender='" & txtAccountNumber.Text & "' where ID=" & txtAccountID.Text & "", conn)

            cmdUpdate.Parameters.AddWithValue("@ID", txtAccountID.Text)
            cmdUpdate.Parameters.AddWithValue("@Name", txtAccountName.Text)
            cmdUpdate.Parameters.AddWithValue("@Age", txtAccountAge.Text)
            cmdUpdate.Parameters.AddWithValue("@Degress", cboAccountDegress.Text)
            cmdUpdate.Parameters.AddWithValue("@Birthday", txtAccountBirthday.Text)
            cmdUpdate.Parameters.AddWithValue("@Address", txtAccountAddress.Text)
            cmdUpdate.Parameters.AddWithValue("@Number", txtAccountNumber.Text)
            cmdUpdate.Parameters.AddWithValue("@Gender", cboAccountGender.Text)

            conn.Open()
            cmdUpdate.ExecuteNonQuery()
            conn.Close()

            bind_data()

您的更新应该使用参数占位符,例如:

Dim cmdUpdate As New OleDbCommand("Update Account SET [Name]=@Name, Age=@Age, Degress=@Degress, Birthday=@Birthday, Address=@Address, [Number]=@Number, Gender=@Gender where ID=@ID", conn)

此外,您的 UPDATE 语句还缺少 SET 关键字,您还必须注意对列名使用保留字并将任何冲突的列用方括号括起来,看看如何我更新了 UPDATE 语句

中的 NameNumber

然后更改添加参数的顺序,将 Id 参数放在最后:

cmdUpdate.Parameters.AddWithValue("@Name", txtAccountName.Text)
cmdUpdate.Parameters.AddWithValue("@Age", txtAccountAge.Text)
cmdUpdate.Parameters.AddWithValue("@Degress", cboAccountDegress.Text)
cmdUpdate.Parameters.AddWithValue("@Birthday", txtAccountBirthday.Text)
cmdUpdate.Parameters.AddWithValue("@Address", txtAccountAddress.Text)
cmdUpdate.Parameters.AddWithValue("@Number", txtAccountNumber.Text)
cmdUpdate.Parameters.AddWithValue("@Gender", cboAccountGender.Text)
cmdUpdate.Parameters.AddWithValue("@ID", txtAccountID.Text)

对于基于 OleDb 的连接,SQL 语句中的参数顺序应与参数添加到 Parameters 集合的顺序相匹配

您应该使用SQL服务器更新功能

UPDATE TableName

设置要更新的列名

SET Column1 = @Column1 ,Column2 = @Column2

并使用 where

定义条件
Where Column3 = ‘Condition’