Skip to content

PostgreSQL C#

Winterpuma edited this page Dec 21, 2019 · 4 revisions

Подружим PostgreSQL с C#.
Для этого используем npgsql.
Нужно добавить ссылку на пакет nuget в проект.

  • Можно так
  • Или в VisualStudio в открытом проекте в обозревателе решений: ссылки -> управление пакетами nuget -> ищем npgsql.

Дальше можно копировать примеры из документации microsoft:

Подводные камни:

Для хранимой функции (созданной через CREATE FUNCTION, а не CREATE PROCEDURE) можно использовать CommandType.StoredProcedure, но это не даст преимущества перед вызовом вручную(SELECT * FROM function_name).

Для хранимой процедуры(CREATE PROCEDURE) же, не нужно использовать CommandType.StoredProcedure, а просто вызвать CALL procedure_name.

// For functions
using (var cmd = new NpgsqlCommand("SELECT my_func(1, 2)", conn))
using (var reader = cmd.ExecuteReader()) { ... }

// For procedures
using (var cmd = new NpgsqlCommand("CALL my_proc(1, 2)", conn))
using (var reader = cmd.ExecuteReader()) { ... }
Clone this wiki locally