Npgsql准备问题

时间:2011-03-31 02:56:44

标签: c# npgsql

我正在尝试通过C#应用程序将一行插入PostgreSQL。按照Npgsql project homepage中显示的步骤,我尝试构建一个预准备语句,以便在表中插入一行。我明白了:

NpgsqlConnection conn = dbConn.getConnection();
conn.Open();
NpgsqlCommand query = new NpgsqlCommand("insert into table(c1, c2) values(:v1, :v2)", conn);
query.Parameters.Add(new NpgsqlParameter("v1", NpgsqlDbType.Varchar));
query.Parameters.Add(new NpgsqlParameter("v2", NpgsqlDbType.Text));
query.Prepare();
query.Parameters[0].Value = "something";
query.Parameters[1].Value = "else";

得到了这个错误:

ERROR: 42601: syntax error in or near «:»

有什么意见吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

这是来自我的工作应用,所以我知道它有效,如果它不让我知道。

conn.Open();

NpgsqlCommand command = new NpgsqlCommand("DELETE from accounts where user_name = :value1", conn);

// Now add the parameter to the parameter collection of the command specifying its type.
command.Parameters.Add(new NpgsqlParameter("value1", NpgsqlDbType.Varchar));

//Now, add a value to it and later execute the command as usual.                
command.Parameters[0].Value = email;
command.ExecuteNonQuery();

conn.Close();