Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 使用OLEDB更新数据库中的记录时出现问题_Sql_Asp.net_Vb.net_Ms Access - Fatal编程技术网

Sql 使用OLEDB更新数据库中的记录时出现问题

Sql 使用OLEDB更新数据库中的记录时出现问题,sql,asp.net,vb.net,ms-access,Sql,Asp.net,Vb.net,Ms Access,我正在创建一个程序,我想在其中更新管理员的密码。我尝试了SELECT UPDATE语句,但仍然出现错误。我将展示后面的代码片段 Dim con As OleDb.OleDbConnection Dim cmd As OleDb.OleDbCommand Dim dr As OleDb.OleDbDataReader Dim selectQuery As String Dim updateQuery As String Protected Sub Reset Password If tx

我正在创建一个程序,我想在其中更新管理员的密码。我尝试了SELECT UPDATE语句,但仍然出现错误。我将展示后面的代码片段

Dim con As OleDb.OleDbConnection
Dim cmd As OleDb.OleDbCommand
Dim dr As OleDb.OleDbDataReader
Dim selectQuery As String
Dim updateQuery As String

Protected Sub Reset Password
    If txtNewPassword.Text <> txtRepeatPassword.Text Then
        Response.Write(<script>alert('Password dont match!')</script>)
        Response.Write("<script>window.location.reload()</script>")
    Else
        Using con As New OleDb.OleDbConnection("Provider=Microsoft.JET.OLEDB.4.0;data source = " & Server.MapPath("Point_Of_Sales.mdb"))
            con.Open()
            selectQuery = "SELECT * FROM Admin WHERE username = '" & Request.QueryString("userName") & "'"
            Using cmd As New OleDb.OleDbCommand(selectQuery, con)
                dr = cmd.ExecuteReader
                cmd.Dispose()
                con.Close()
            End Using
        End Using

        Using con As New OleDb.OleDbConnection("Provider=Microsoft.JET.OLEDB.4.0;data source = " & Server.MapPath("Point_Of_Sales.mdb"))
            con.Open()
            updateQuery = "UPDATE Admin SET (password = @repeatNewPass) WHERE (username = @username) "
            Using cmd As New OleDb.OleDbCommand(updateQuery, con)
                cmd.Parameters.AddWithValue("@repeatNewPass", txtRepeatPassword.Text)
                cmd.Parameters.AddWithValue("@username",Request.QueryString("userName")
                cmd.ExecuteNonQuery()
                cmd.Dispose()
                con.Close()
            End Using
            Response.Write(<script>alert('Successfully updated the password for admin!')</script>)
        End Using
    End If
End Sub

-如您所见,我使用Request.QueryString从另一个页面(用户名)检索值。我遇到的错误在具有更新查询的第二个连接中。任何帮助和建议都会有帮助。

密码是保留字,请尝试:

updateQuery = "UPDATE Admin SET ([password] = @repeatNewPass) WHERE (username = @username) "
参数只是按顺序排列的:

updateQuery = "UPDATE Admin SET ([password] = ?) WHERE (username = ?) "

你就快到了,但给我一个错误是有用的,因为它不起作用。到底发生了什么?你的打印机是不是突然在抱怨电脑加载信?我试过你的建议,但没用。我还将password列更改为admin_password,并在查询中使用它,但仍然遇到一个错误,即更新查询有问题