Я изучаю Npgsql и PostgrSQL. Я не могу заставить этот простой тест работать. Вот моя функция:Как выполнить функцию ExecuteScalar с помощью Npgsql и PostgreSQL?
CREATE OR REPLACE FUNCTION count_customers(_customerid integer DEFAULT NULL::integer)
RETURNS void AS
$BODY$
BEGIN
SELECT COUNT(*) FROM Customers
WHERE CustomerId = _customerid or _customerid is null;
END
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
Вот мой C# код:
[Test]
public void ExecuteScalarTest()
{
NpgsqlConnection conn = new NpgsqlConnection("Host=localhost; Database=postgres; User ID=postgres; Password=password");
conn.Open();
IDbCommand command = conn.CreateCommand();
command.CommandText = "count_customers";
command.CommandType = CommandType.StoredProcedure;
object result = command.ExecuteScalar();
conn.Close();
Console.WriteLine(result);
}
я получаю ошибку ниже.
Npgsql.NpgsqlException: ОШИБКА: 42601: запрос не имеет назначения для данных результата
+1 спасибо за просмотр вашего кода и текст сообщения об ошибках. В будущем также рекомендуется использовать PostgreSQL. –