微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

更新 Access 数据库中的密码时 UPDATE 语句中的语法错误

如何解决更新 Access 数据库中的密码时 UPDATE 语句中的语法错误

我在 UPDATE 语句中遇到语法错误,同时在 C# 中更新 Access 数据库中的密码:

protected void Button1_Click(object sender,EventArgs e)
{
    OleDbConnection con = new OleDbConnection();
    con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
        Server.MapPath("~/Database/registration.accdb");

    con.open();

    OleDbCommand cmd = new OleDbCommand();
    cmd.Connection = con;
    cmd.CommandType = CommandType.Text;
    cmd.CommandText =
        "UPDATE into userdata(password)values('"+TextBox1.Text+"') where id=@id";
    cmd.ExecuteNonQuery();
    con.Close();
    Response.Write("alert('Password Reset Successfully done');"); 
}

解决方法

这是因为您的 const text = 'h_ello ______ where ___ test ___'; const blankData = ['there','you','it']; result = text.replace(/_{3,}/g,(i => _ => blankData[i++])(0)); console.log(result); 不正确,这不是您更新数据库中数据的方式。应该是这样的:

SQL Query

您至少应该学习 SQL 语法的基础知识,更多信息here

此外,您不应该连接您的查询,因为它会受到 query = "Update [tableName] SET [ColumnName] = 'Values',[ColumnName1] = 'Values2',..."; 的攻击,您至少应该使用 SQL Injection attack

Parameterized Query
,

你必须修正你的查询

   "UPDATE  userdata SET password=@password where id=@id";
 

并在 cmd.ExecuteNonQuery() 之前添加新行

cmd.Parameters.AddWithValue("@id",id);
 cmd.Parameters.AddWithValue("@password",TextBox1.Text);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。