我正在尝试使用Npgsql(PostgreSQL)和Visual Studio 2015更新列的值。这是“忘记密码?”形式。
用户需要输入两个变量才能完成重置(if条件): 1.进入SSN(巴西的RG);和 2.输入不可更改的用户特定代码。
会发生什么:当我尝试更改值时(使用下面的命令),没有任何反应。
NpgsqlCommand command = new NpgsqlCommand("UPDATE dbschema.dbtable SET senha = '" + textBox2.Text + "' WHERE rg = '" + textBox2.Text + "'");
if条件执行完美(我将if命令绑定到Message框,显示密码已成功重置 - 表明if条件确实已执行) - 唯一不会发生的事情现在是密码更新(这可能是发布中的一个次要功能,因为我更喜欢在数据库上重置自己)。我在代码中尝试了几处更改,但还没有成功。
提前感谢您的帮助。
卢卡斯
答案 0 :(得分:0)
您必须实际打开数据库连接并执行命令,例如:
using (var conn = new NpgsqlConnection(<connection string>)) {
var command = new NpgsqlCommand("UPDATE dbschema.dbtable SET senha = '" + textBox2.Text + "' WHERE rg = '" + textBox2.Text + "'", conn);
conn.Open();
command.ExecuteNonQuery();
}
请注意,传递参数的方式也对SQL注入攻击开放。你应该看一下参数化的查询。
答案 1 :(得分:0)