我知道关于这个主题有很多问题,但我找不到任何解决方案。我创建的代码允许用户创建一个帐户(完美地工作),现在我正在尝试允许用户使用文本框更改其用户名和/或密码。代码从数据库中读取详细信息,并将它们放在要更改和更新的文本框中。目前,我已设法获取正确的行并找到正确的字段,但不是用文本框中的值(我想要的)替换当前值,而是在用户名中将-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语句,并返回了正确的值并进行了更新,因此我不知道是什么原因造成的。
谢谢!
答案 0 :(得分:0)
你的updateSql甚至可以运行吗?
查询应如下所示:
UPDATE Users SET Username=@USER, [Password]=@PASS WHERE StudentID=@ID
为什么要修剪用户名和密码?