使用OleDb,SQL和VB.NET更新Access数据库中的行

时间:2015-01-27 08:17:50

标签: sql vb.net oledb

我知道关于这个主题有很多问题,但我找不到任何解决方案。我创建的代码允许用户创建一个帐户(完美地工作),现在我正在尝试允许用户使用文本框更改其用户名和/或密码。代码从数据库中读取详细信息,并将它们放在要更改和更新的文本框中。目前,我已设法获取正确的行并找到正确的字段,但不是用文本框中的值(我想要的)替换当前值,而是在用户名中将-1或0放入数据库中列,当我尝试更改密码时,它不会更改。代码如下:

 connstring = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\RevisionAid2\RevisionAid2\UserDatabase.accdb"
    Dim conn As OleDbConnection = New OleDbConnection(connstring)

    Dim updateSql As String = String.Format("UPDATE Users SET Username=@USER and [Password]=@PASS WHERE StudentID=@ID")

    Dim cmd As New OleDbCommand(updateSql, conn)
    cmd.Parameters.AddWithValue("@USER", ChangeUsernameTextBox.Text.Trim) 
    cmd.Parameters.AddWithValue("@PASS", ChangePasswordTextBox.Text.Trim)
    cmd.Parameters.AddWithValue("@ID", StudentID.Text)
    'conn.Close()
    conn.Open()
    cmd.ExecuteNonQuery()
    conn.Close()

我已在Access中测试了SQL语句,并返回了正确的值并进行了更新,因此我不知道是什么原因造成的。

谢谢!

1 个答案:

答案 0 :(得分:0)

你的updateSql甚至可以运行吗?

查询应如下所示:

UPDATE Users SET Username=@USER, [Password]=@PASS WHERE StudentID=@ID

为什么要修剪用户名和密码?