如何修复更新语句 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 语句
中的 Name
和 Number
列
然后更改添加参数的顺序,将 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’
我的代码是:
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 语句
Name
和 Number
列
然后更改添加参数的顺序,将 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’