Код: Выделить всё
CREATE OR REPLACE PROCEDURE public.get_list()
LANGUAGE sql
BEGIN ATOMIC
SELECT field1,
field2,
field3
FROM some_table;
END;
< /code>
Вот мой код c#: < /p>
DataTable dtt = new DataTable();
string ConString = "Server=x.xxx.xx.xxx;Port=5432;User Id=xxx;Password=xxx;Database=xxx;";
NpgsqlConnection connection = new NpgsqlConnection(ConString);
connection.Open();
NpgsqlCommand cmd = new NpgsqlCommand("CALL public.get_list()");
try
{
cmd.Connection = connection;
cmd.CommandType = System.Data.CommandType.StoredProcedure;
using (var dataReader = cmd.ExecuteReader())
{
if (dataReader.HasRows)
{
GridView.Visible = true;
dtt.Load(dataReader);
GridView.DataSource = dtt;
GridView.Update();
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
< /code>
После выполнения этого кода DataReader < /code> возвращает 0 строк.
Хранитованная процедура ничего не возвращает: Fiddle < /p>
CALL public.get_list();
< /code>
CALL
Подробнее здесь: https://stackoverflow.com/questions/797 ... -procedure