我有一个简单的函数,它只是将提供给它的参数值插入到表中的列中。
当我通过命令对象上的 ExecuteNonQuery() 方法运行该函数时,即使插入发生,我总是得到-1。
如果我运行与文本命令相同的查询,它给出的正确结果为 1。
我是 postgresql/npgsql 的新手。有没有技巧可以让函数反馈受影响的行数?SQL Server 中的“set nocount off”之类的东西?
编辑: 我正在使用的代码:(使用 npgsql 2.0.11)
var connStr = @"Server=127.0.0.1;Port=5432;User Id=postgres;Password=***;Database=Test;";
using (var conn = new NpgsqlConnection(connStr)) {
conn.Open();
using (var cmd = conn.CreateCommand())
{
cmd.CommandText = "insert_something";
cmd.CommandType = CommandType.StoredProcedure;
NpgsqlCommandBuilder.DeriveParameters(cmd);
cmd.Parameters["_id"].Value = 1;
cmd.Parameters["_val"].Value = 2;
var rowsAffected = cmd.ExecuteNonQuery();
Console.WriteLine(rowsAffected);
}
}