尝试使用Npgsql更新C#上的列

时间:2017-08-14 16:04:02

标签: c# postgresql npgsql

我正在尝试使用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条件确实已执行) - 唯一不会发生的事情现在是密码更新(这可能是发布中的一个次要功能,因为我更喜欢在数据库上重置自己)。我在代码中尝试了几处更改,但还没有成功。

提前感谢您的帮助。

卢卡斯

2 个答案:

答案 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)

您是否曾尝试执行NpgsqlCommand

此外,您最好使用参数化查询。

请参阅此示例:INSERT data from Textbox to Postgres SQL