奇怪的更新子句错误(VB.NET)

奇怪的更新子句错误(VB.NET),vb.net,ms-access,Vb.net,Ms Access,我遇到了一个非常奇怪的错误。我有一个只有两列的表(User和pass,都是文本类型)。 程序首先询问我要修改哪一列。通过单选按钮,我可以指向要修改的列 按任意单选按钮,将显示两个文本框。您必须输入密码和新数据才能修改密码 问题是,在进行修改时,如果我想更改用户列,一切都很好。。。但如果我想更改密码列中的某个内容,请释放“updateerror子句” 老实说,我在这段代码中没有看到任何错误: Protected Friend Sub modificarAcesso(ByVal column As

我遇到了一个非常奇怪的错误。我有一个只有两列的表(User和pass,都是文本类型)。 程序首先询问我要修改哪一列。通过单选按钮,我可以指向要修改的列

按任意单选按钮,将显示两个文本框。您必须输入密码和新数据才能修改密码

问题是,在进行修改时,如果我想更改用户列,一切都很好。。。但如果我想更改密码列中的某个内容,请释放“updateerror子句”

老实说,我在这段代码中没有看到任何错误:

Protected Friend Sub modificarAcesso(ByVal column As String, ByVal dato As String)
    Dim cmd As String = "Update Login SET " & column & "=@dato"
    Try
        con.Open()
        comando = New OleDbCommand(cmd, con)
        comando.Parameters.AddWithValue("@dato", dato)
        comando.ExecuteNonQuery()
        comando.Dispose()
        con.Close()
    Catch ex As Exception
        con.Close()
        MsgBox("Problemas en la consulta: " + ex.Message(), MsgBoxStyle.Critical)
    End Try
End Sub

密码是一个关键字,所以你必须把它放在括号里。如果列名中也有空格,则仍应执行此操作:

Dim cmd As String = "Update Login SET [" & column & "] = @dato"

您将更新整个表,因为您没有where子句。失败命令的SQL是什么?您收到的整个错误是什么?程序只说了“更新语句中的错误”。。。下面的答案可以解决所有问题!但是你还是要把每一行都改成相同的值我知道你怎么想。。。我不会把密码放在任何地方,因为我只会使用一个用户。别忘了,你永远不应该在数据库中以明文形式存储密码——加密它,否则世界上所有的灾难都将属于你。