У меня есть простая функция, которая просто вставляет значения параметров, предоставленные ей, в столбцы таблицы.
Когда я запускаю функцию через метод ExecuteNonQuery () на объекте команды, я всегда получаю -1,даже если вставка произошла.
Если я выполняю тот же запрос, что и текстовая команда, это дает правильный результат 1.
Я новичок в postgresql / npgsql.Есть ли хитрость, чтобы функция возвращала количество затронутых строк?Что-то вроде «отключить nocount» в SQL Server?
РЕДАКТИРОВАТЬ: Код, который я использую: (с 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);
}
}