Database 使用Microsoft JET OLEDB 4.0添加用户记录vb.net 2010数据库(MSaccess)

Database 使用Microsoft JET OLEDB 4.0添加用户记录vb.net 2010数据库(MSaccess),database,vb.net,oledb,oledbconnection,Database,Vb.net,Oledb,Oledbconnection,您好,我在数据库中保存记录时遇到问题,当我调试程序时,它说OLEDB执行选项未处理,update语句中出现语法错误 你能帮我吗 这是正确的密码吗 Imports System.Data.OleDb Public Class Form2 Dim contr As String = "Provider= Microsoft.Jet.OLEDB.4.0; Data Source= C:\Users\Administrator\Desktop\Users.mdb;" Private S

您好,我在数据库中保存记录时遇到问题,当我调试程序时,它说OLEDB执行选项未处理,update语句中出现语法错误 你能帮我吗

这是正确的密码吗

Imports System.Data.OleDb
Public Class Form2
    Dim contr As String = "Provider= Microsoft.Jet.OLEDB.4.0; Data Source= C:\Users\Administrator\Desktop\Users.mdb;"

    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim con As New OleDbConnection(contr)
        con.Open()
        Dim cmd As New OleDbCommand("UPDATE Usertable SET Username = @Username, Password = @Password WHERE id = @id", con)
        cmd.Parameters.AddWithValue("@Username", TextBox1.Text)
        cmd.Parameters.AddWithValue("@Password", TextBox2.Text)
        cmd.Parameters.AddWithValue("@Id", Label3.Text)
        cmd.ExecuteNonQuery()

        con.Close()

    End Sub
    End Class
密码是MS Access的密码。使用封闭在方形制动器中的制动器

Dim cmd As New OleDbCommand("UPDATE Usertable SET Username = @Username, " & _ 
                            "[Password] = @Password WHERE id = @id", con)

Access/OLE不喜欢命名参数。你需要使用什么?占位符:

UPDATE Usertable SET Username = ?, Password = ? WHERE id = ?

然后,要将每个参数值与占位符匹配,必须按照占位符在查询中的使用顺序(而不是按名称)将它们添加到参数集合中。

请不要以纯文本形式存储密码。了解如何进行密码哈希。抱歉,这不是完全正确的。Access接受问题中使用的占位符可能是为了便于移植,重要的是参数集合中的添加顺序,但这已经是正确的。