【问题标题】:How to fix update statement with passwords如何使用密码修复更新语句
【发布时间】:2023-03-29 19:27:01
【问题描述】:

所以我的问题是说我的更新声明中有我的问题,但我相信我的说法是正确的,如果我错了请纠正我

                            connection.Open();
                            OleDbCommand command = new OleDbCommand();
                            command.Connection = connection;
                            string query = "update Admin set Password='" + Npassword.Text + "' WHERE Pk='" + txt2.Text + "'";
                            command.CommandText = query;
                            command.ExecuteNonQuery();
                            MessageBox.Show("Password Changed");
                            connection.Close();
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show("Error, fill the fields required" + ex);
                            connection.Close();
                        }

【问题讨论】:

  • 您使用的是 MySql 还是 MS Access?无论哪种方式,使用参数化 SQL 查询,您的问题都可能会得到解决。以后,请显示您收到的错误消息,因为没有您的问题很难诊断。
  • 您的查询完全是在招致 sql 注入攻击。遵循@John 的使用参数化查询的建议。或者,您可以将更新语句包装在存储过程中

标签: c# mysql ms-access-2007


【解决方案1】:

暂时忽略cmets中的好建议,密码是Access SQL中的保留字,因此必须括起来:

string query = "update Admin set [Password]='" + Npassword.Text + "' WHERE Pk='" + txt2.Text + "'";

另外,如果 Pk 是数字,则不带引号:

string query = "update Admin set [Password]='" + Npassword.Text + "' WHERE Pk=" + txt2.Text + "";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-09
    • 1970-01-01
    • 2020-10-25
    • 1970-01-01
    • 1970-01-01
    • 2015-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多