PostgreSQL C

PostgreSQL C ФСС

последнее изменение: 5 июля 2023 г.

Учебное пособие по C# PostgreSQL показывает, как программировать PostgreSQL на C#. Он охватывает
основы программирования PostgreSQL на C#.

последнее изменение: 6 июля 2020 г.

Это руководство по программированию на языке C для базы данных PostgreSQL. Он охватывает основы
программирования PostgreSQL с использованием C API.

Сегодня мы поговорим об объединении Postgres с моим любимым языком и средой выполнения: C# и . СЕТЬ. Тот факт, что Postgres не является собственной базой данных Microsoft, такой как SQL Server, не означает, что у вас нет полной поддержки его в C#. Да, безусловно, так и есть, и в этой статье вы увидите современные способы сделать это. Вы увидите, как взаимодействовать между Postgres и C# с помощью стандартной библиотеки поставщика данных Npgsql.
, используй его с Dapper
и даже с Entity Framework
. Мы рассмотрим основные операции, такие как создание таблицы, вставка строк, удаление и обновление записей, используя все эти платформы.

Запуск и остановка PostgreSQL

В следующем разделе мы покажем, как запустить базу данных PostgreSQL.
остановите его и запросите его статус.

В Linux на базе Debian мы можем запустить сервер с помощью команды запуска службы postgresql.

$ статус службы sudo postgresql
9.3/основной (порт 5432): онлайн

Мы используем команду статуса службы postgresql, чтобы проверить, является ли PostgreSQL
бежит.

Мы используем команду остановки службы postgresql, чтобы остановить PostgreSQL.

$ статус службы postgresql
9.3/основной (порт 5432): вниз

В этот момент команда статуса postgresql службы сообщает, что
база данных PostgreSQL не работает.

Заканчиваем

Как видите, PostgreSQL полностью поддерживается C#, и с ним можно взаимодействовать разными способами, включая Dapper и Entity Framework. В основном все просто и понятно, что хорошо описывает общий опыт работы с PostgreSQL.

Возможно, вас заинтересует еще одна статья, которую я написал о производительности Postgres: Тесты производительности PostgreSQL в . NET: Npgsql против Dapper против Entity Framework

Опрятный

Если вы не знакомы с Дэппером
, это простой преобразователь объектов, который позволяет выполнять запросы к базам данных с помощью обычного SQL и сопоставлять их с объектами C#. Это где-то посередине между ADO. NET, где вы сами анализируете ответы на полноценную ORM, такую ​​​​как Entity Framework.

Чтобы использовать Dapper с Postgres, установите пакет NuGet Dapper.
с помощью dotnet добавьте пакет Dapper.

Dapper добавляет методы расширения, такие как QueryAsync, к объекту соединения NpgsqlConnection, поэтому вам не нужно инициализировать что-либо дополнительно.

Основное преимущество Dapper — автоматическое сопоставление операций чтения. Вместо использования NpgsqlDataReader вы можете создать конструктор с параметрами, соответствующими именам столбцов, и код станет намного приятнее. Вот пример реализации GetBySubject с помощью Dapper:

Чтобы приведенный выше код работал, у учителя класса должен быть конструктор, принимающий все столбцы таблицы в качестве параметров, например:

Помимо чтения записей, вы можете использовать Dapper для выполнения любой команды SQL, например CREATE, UPDATE или DELETE. Вот пара примеров:

ExecuteAsync — еще один метод расширения Dapper.

Как видите, синтаксис Dapper немного лучше, чем у Npgsql, особенно для параметризованных команд.

АДО. НЕТ

АДО. NET является неотъемлемой частью . СЕТЬ. Это спецификация, которая
унифицирует доступ к реляционным базам данных, файлам XML и другим данным приложения.
Npgsql — это реализация ADO. NET-спецификация для
База данных PostgreSQL. Это драйвер, написанный на языке C# и доступный для
все . NET-языки.

$ dotnet добавить пакет Npgsql

Мы включаем посылку в наш . NET Core проект.

NpgsqlConnection, NpgsqlCommand,
NpgsqlDataReader, DataSet и
NpgsqlDataProvider — это основные элементы платформы . NET-провайдер данных
модель. NpgsqlConnection создает соединение с определенными данными.
источник. Объект NpgsqlCommand выполняет оператор SQL против
источник данных. NpgsqlDataReader считывает потоки данных из
источник данных.

Объект DataSet используется для автономной работы с большим количеством данных. Это
— это автономное представление данных, которое может хранить данные из различных
разные источники. И NpgsqlDataReader, и DataSet.
используются для работы с данными; они используются при разных обстоятельствах. Если бы мы только
нужно прочитать результаты запроса, лучше использовать NpgsqlDataReader
выбор. Если нам нужна более обширная обработка данных или мы хотим связать Winforms
управление таблицей базы данных, DataSet предпочтителен.

C# NpgsqlDataReader

NpgsqlDataReader — это объект, используемый для извлечения данных из
база данных. Он обеспечивает быстрый прямой доступ только для чтения к результатам запроса. Это
это наиболее эффективный способ получения данных из таблиц.

Берём все строки из таблицы cars и печатаем их в
консоль.

с помощью NpgsqlDataReader rdr = cmd. ВыполнитьЧтение();

Чтобы создать NpgsqlDataReader, мы вызываем метод
Метод ExecuteReader объекта NpgsqlCommand.

Метод Read переводит считыватель данных к следующей записи. Это
возвращает true, если строк больше; в противном случае ложь.
Мы можем получить значение, используя обозначение индекса массива, или использовать конкретную
метод для доступа к значениям столбцов в их собственных типах данных. Последнее более
эффективный.

Читайте также:  Р18 фсс ру

$ запуск в сети
1 Ауди 52642
2 Мерседес 57127
3 Шкода 9000
4 Вольво 29000
5 Бентли 350000
6 Ситроен 21000
7 Хаммер 41400
8 Фольксваген 21600
9 БМВ 36600

Аутентификация с помощью пароля

Далее мы собираемся пройти аутентификацию на сервере базы данных.
с паролем. Во всех других примерах этого урока мы
принять одноранговую или доверительную аутентификацию
режим. Меняем тип аутентификации на
локальное соединение внутри файла pg_hba.conf с md5.

$ перезапуск службы sudo postgresql

Чтобы применить изменения, сервер базы данных необходимо перезапустить.

В строку подключения добавляем параметр пароля.

char *db_name = PQdb(conn);

Функция PQdb возвращает имя базы данных соединения.

char *pswd = PQpass(conn);

Функция PQpass возвращает пароль соединения.

Создание таблицы базы данных

В этом разделе мы создаем таблицу базы данных и заполняем ее
данные.

Созданная таблица называется Автомобили и имеет три столбца:
Идентификатор, название автомобиля и его цена.

PGresult *res = PQexec(conn, «УДАЛИТЬ ТАБЛИЦУ, ЕСЛИ СУЩЕСТВУЮТ Автомобили»);

Функция PQexec отправляет команду SQL на сервер и ждет
для результата. PGresult инкапсулирует результат запроса.
Наша команда SQL удаляет таблицу, если она уже существует.

Функцию PQresultStatus следует вызывать для проверки
возвращаемое значение для любых ошибок. PGRES_COMMAND_OK возвращается, если
команда была выполнена правильно и не возвращает данные.

Каждый результат команды должен быть освобожден с помощью функции PQclear.
когда он больше не нужен.

Запускаем программу и сверяем созданную таблицу с
инструмент psql.

Установка

Мы собираемся установить базу данных PostgreSQL и библиотеку разработки C.

$ sudo apt-get install postgresql

В системе на базе Debian мы можем установить базу данных PostgreSQL из пакетов
используя приведенную выше команду.

Если мы устанавливаем базу данных PostgreSQL из пакетов, она автоматически добавляется в
сценарии запуска операционной системы. Если мы только учимся работать с
базы данных, нет необходимости запускать базу данных каждый раз при загрузке системы.
Приведенная выше команда удаляет все ссылки запуска системы для базы данных PostgreSQL.

$ sudo apt-get install libpq-dev

Чтобы иметь возможность компилировать примеры C, нам необходимо установить разработку PostgreSQL C.
библиотеки. В приведенной выше строке показано, как мы можем сделать это в Linux на базе Debian.

$ sudo -u postgres psql postgres
psql (9.3.9)
Чтобы получить помощь, введите «help».

postgres=# пароль postgres

Подготовленные заявления

Подготовленные операторы защищают от SQL-инъекций и повышают производительность. Когда используешь
подготовленные операторы, мы используем заполнители вместо того, чтобы напрямую записывать значения в
заявления.

Аргумент командной строки хранится в переменной rowId.
Мы ожидаем целочисленное значение.

Значение преобразуется в строку и передается в массив
персонажи. ParamValues ​​— это параметр PQexecParams.
функция.

char *stm = «SELECT * FROM Cars WHERE Id=$1»;

Это наш оператор SQL, который возвращает одну строку таблицы Cars.
$1 — это заполнитель, который позже заполняется.
с реальной стоимостью.

PGresult *res = PQexecParams(conn, stm, 1, NULL, paramValues,
НУЛЬ, НУЛЬ, 0);

Функция PQexecParams создает подготовленный оператор.
и выполняет его. Второй параметр — это оператор SQL. Третий
параметр — количество переданных параметров. Передача NULL в
четвертый параметр означает, что сервер должен определить параметр
типы. Пятый параметр — указатель на массив строк, содержащий
параметры. Следующие два параметра актуальны только для двоичных файлов.
параметры. Передавая 0 в последний параметр, мы получаем результат
в текстовом формате, 1 в двоичном формате.

printf(«%s %s %s
«, PQgetvalue(рез, 0, 0),
PQgetvalue(res, 0, 1), PQgetvalue(res, 0, 2));

Печатаем три поля указанной строки.

$ ./prepared_statement 4
4 Вольво 29000

Это результат примера.

Серверная версия

Пример подключается к базе данных PostgreSQL, выполняет PQserverVersion.
функция, печатает версию, закрывает соединение и очищает.

Функция PQstatus возвращает статус соединения.
В случае успешного соединения возвращается CONNECTION_OK;
при неудачном соединении возвращается CONNECTION_BAD.
PQerrorMessage возвращает самую последнюю сгенерированную ошибку.
сообщение.

int ver = PQserverVersion(conn);

Функция PQserverVersion возвращает целое число, представляющее
версия базы данных PostgreSQL. Он принимает объект соединения как
параметр.

Функция PQfinish закрывает соединение с сервером и освобождает память.
используется объектом PGconn.

$ ./server_version
Версия сервера: 90309

Запустив программу, мы получим версию сервера базы данных.

Библиотека libpq

Библиотека libpq — это интерфейс C для PostgreSQL.
Это набор библиотечных функций, которые позволяют клиентским программам взаимодействовать с PostgreSQL.
Это также базовый движок для нескольких других интерфейсов приложений PostgreSQL.
включая написанные для C++, Perl, PHP, Ruby, Python и Tcl.

Программа печатает версию библиотеки libpq.

Файл libpq-fe.h содержит определения перечислений, структур,
константы и функции интерфейса программирования C.

int lib_ver = PQlibVersion();

Функция PQlibVersion возвращает версию libpq.
быть использованным.

$ pg_config —includedir
/usr/include/postgresql
$ pg_config —libdir
/usr/lib

Инструмент pg_config используется для определения местоположения
файлы заголовков C и библиотеки объектного кода.

$ gcc -o lib_version lib_version.c -I/usr/include/postgresql -lpq -std=c99

Приведенной выше командой мы компилируем программу.

$ ./lib_version
Версия libpq: 90309

Версия библиотеки — 9.3.9.

PostgreSQL имеет сложные функции, такие как многоверсионное управление параллелизмом.
(MVCC), восстановление на момент времени, табличные пространства, асинхронная репликация, вложенные
транзакции (точки сохранения), онлайн-/горячие резервные копии, сложный запрос
планировщик/оптимизатор и предварительная запись в журнал для обеспечения отказоустойчивости. Он поддерживает
международные наборы символов, многобайтовые кодировки символов, Unicode и т. д.
с учетом локали для сортировки, учета регистра и форматирования.

О базе данных PostgreSQL

PostgreSQL имеет сложные функции, такие как управление многоверсионным параллелизмом (MVCC),
восстановление на момент времени, табличные пространства, асинхронная репликация, вложенные транзакции
(точки сохранения), оперативное/горячее резервное копирование, сложный планировщик/оптимизатор запросов и упреждающая запись.
ведение журнала для обеспечения отказоустойчивости. Он поддерживает международные наборы символов, многобайтовые символы.
кодировки, Unicode, а также учитывает локаль для сортировки, учета регистра и форматирования.

Читайте также:  Какой номер строки по форме 16 вн можно использовать для заполнения формы 17

Версия C# PostgreSQL

Подключаемся к базе данных и получаем некоторую информацию о сервере PostgreSQL.

Импортируем элементы поставщика данных PostgreSQL.

с использованием var con = new NpgsqlConnection(cs);

Создается объект NpgsqlConnection. Этот объект используется для открытия
подключение к базе данных. Оператор using освобождает базу данных
ресурс соединения, когда переменная выходит за пределы области видимости.

Эта строка открывает соединение с базой данных.

var sql = «ВЫБРАТЬ версию()»;

Это оператор SQL SELECT. Он возвращает версию базы данных.
version — это встроенная функция PostgreSQL.

с помощью var cmd = new NpgsqlCommand (sql, con);

NpgsqlCommand — это объект, который используется для выполнения запроса на
база данных. Параметрами являются оператор SQL и объект соединения.

вар версия = cmd. ВыполнитьСкаляр(). Нанизывать();

Есть запросы, которые возвращают только скалярное значение. В нашем случае мы хотим
простая строка, определяющая версию базы данных.
ExecuteScalar используется в таких ситуациях.

Выводим в консоль версию PostgreSQL.

$ запуск в dotnet
Версия PostgreSQL: PostgreSQL 11.1, скомпилированная Visual C++, сборка 1914, 64-разрядная версия

.

Провайдеры баз данных

Настоящее руководство устарело. Актуальное руководство: Руководство по Entity Framework Core 7

Последнее обновление: 18.11.2020

Для работы с базой данных PostgreSQL создадим новый консольный проект . NET Core. Для работы с этой СУБД вместо с Entity Framework Core в проект необходимо добавить
через Nuget пакет :


PostgreSQL C

И также определим класс контекста данных:

Теперь определим в файле простейшую программу по добавлению и извлечению объектов из базы данных:

Миграции

Выше для создания базы данных использовался метод Database. EnsureCreated. Теперь изменим класс контекста данных — уберем вызов Database. EnsureCreated и
изменим название база данных:

Посмотрим теперь, как использовать миграции. Прежде всего нам надо добавить в проект через
Nuget пакет для поддержки миграций.

Для создания базы данных создадим и выполним миграции. Для этого в окне Package Manager Console введем команду:

После генерации файла миграции для создания базы данных выполним команду:

После этого на сервере будет создана база данных, и мы сможем с ней взаимодействовать.

Подключение к существующей базе данных

Для подключения к существующей базе данных в PostgreSQL необходимо в Package Manager Console выполнить команду Scaffold-DbContext,
которой передается строка подключения и название провайдера, то есть (для выполнения этой команды
тоже необходим пакет ). Сначала вводится команда Scaffold-DbContext и строка подключения:

Затем в консоли появится слово , после которого надо будет ввести название провайдера, то есть

Причем на данный момент название провайдера вводится вручную.


PostgreSQL C

И если все прошло удачно, то EntityFramework Core автоматически сгенерирует все необходимые классы моделей и контекста.

Metadata

In the first example, we print column headers.

The example prints the number of available columns and
their names to the console.

PGresult *res = PQexec(conn, «SELECT * FROM Cars WHERE Id=0»);

In the SQL statement, we select all columns of a row.

int ncols = PQnfields(res);

The PQnfields function returns the number of
columns in the row of the query result.

char *name = PQfname(res, i);

The PQfname function returns the column name associated
with the given column number.

$ ./column_headers
There are 3 columns
The column names are:
id
name
price

Listing tables

The PostgreSQL’s information schema consists of a set of views that contain
information about the objects defined in the current database. The tables
view contains all tables and views defined in the current database.

The example prints all the tables in the testdb database.

PGresult *res = PQexec(conn, «SELECT table_name FROM information_schema.tables »
«WHERE table_schema = ‘public'»);

This SQL statement selects all tables from the current database.

The tables are printed to the console.

$ ./list_tables
cars
authors
books

The list_tables program prints available tables in the testdb database.

Creating a user and a database

$ sudo -u postgres createdb testdb —owner janbodnar

C# PostgreSQL create table

In the example, we create a cars table with eight rows.

cmd. CommandText = «DROP TABLE IF EXISTS cars»;
cmd. ExecuteNonQuery();

First we drop the table if it already exists. We use the
ExecuteNonQuery method if we do not want a result set, for
example for DROP, INSERT, or DELETE
statements.

The cars table is created. The SERIAL
keyword makes the column auto-incremented in PostgreSQL.

Here we insert two rows into the table.

$ dotnet run
Table cars created

We run the program.

$ psql -U postgres testdb
psql (11.1)
Type «help» for help.

We connect to the PostgreSQL server with the psql tool.

We verify the data. The cars table was successfully created.

Entity Framework

Entity Framework
is a big full-featured object-relational mapping framework (ORM) by Microsoft. Although it’s usually associated with SQL Server, EF supports PostgreSQL with the NuGet package Npgsql. EntityFrameworkCore. PostgreSQL.

Reading records with Entity Framework

Here are a couple of ways to read rows in the database.

Вставка записей с помощью Entity Framework

Не забудьте вызвать SaveChangesAsync в конце вставок и обновлений.

Обновление записей с помощью Entity Framework

Когда все настроено, с Entity Framework становится действительно приятно работать. Вы можете оставаться в зоне комфорта кода C#, обращаясь с таблицами базы данных как с любыми другими файлами . NET-коллекция. Ну, в основном. С другой стороны, у EF есть и недостатки. Эта дополнительная оболочка может привести к проблемам с производительностью, проблемам при первоначальной настройке, трудностям с изменением схемы, неполному набору функций и совершенно неправильному поведению, если в реализации EF есть ошибки.

Читайте также:  Как распечатать больничный лист по номеру онлайн на сайте фсс

Сделки

Транзакция — это атомарная единица операций базы данных с данными в одном или
больше баз данных. Операторы S QL в транзакции могут быть либо полностью зафиксированы в базе данных, либо
все откатилось назад. Заявления S QL используются в транзакциях для обеспечения безопасности и целостности данных.

PostgreSQL работает в режиме автофиксации. Каждый оператор SQL выполняется внутри транзакции:
Каждый отдельный оператор имеет неявный BEGIN и (в случае успеха) COMMIT, обернутый вокруг него.

Явная транзакция начинается с команды BEGIN и заканчивается командой
Команда СОВЕРШИТЬ.

В примере мы обновляем цену автомобиля и вставляем новый автомобиль.
Две операции включены в одну транзакцию. Это означает
что либо обе операции выполняются, либо ни одна.

PGresult *res = PQexec(conn, «BEGIN»);

Транзакция запускается командой BEGIN.

res = PQexec(conn, «UPDATE Cars SET Price=23700 WHERE Id=8»);

Обновляем цену на машину с ID 8.

res = PQexec(conn, «INSERT INTO Cars VALUES(9,’Mazda’,27770)»);

В таблицу «Машины» добавлен новый автомобиль.

res = PQexec(conn, «COMMIT»);

Транзакция фиксируется командой COMMIT.

Это было руководство по PostgreSQL C API. Вас также может заинтересовать
Учебное пособие по PostgreSQL PHP,
Учебное пособие по SQLite C или учебное пособие по MySQL C на ZetCode.

Простой запрос

В этом разделе мы выполняем простую команду запроса.

В примере возвращается версия сервера базы данных.

PGresult *res = PQexec(conn, «SELECT VERSION()»);

Оператор SQL SELECT VERSION извлекает версию
база данных.

PGRES_TUPLES_OK возвращается для запроса, который возвращает данные.
с помощью функции PQresultStatus.

printf(«%s
«, PQgetvalue(res, 0, 0));

Функция PQgetvalue возвращает одно значение поля одной строки
ПГрезультат.

$ ./query_version
PostgreSQL 9.3.9 на x86_64-unknown-linux-gnu, скомпилированный gcc (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4, 64-бит

Программа распечатывает этот вывод.

Подготовленные операторы C# PostgreSQL

Подготовленные заявления повышают безопасность и производительность. Когда мы пишем подготовленные
операторов, мы используем заполнители вместо того, чтобы напрямую записывать значения в
заявления.

Добавляем новую машину в таблицу cars. Мы используем параметризованную команду.

смд. Параметры. AddWithValue(«имя», «BMW»);
cmd. Параметры. AddWithValue(«цена», 36600);
cmd. Подготовить();

Значения привязываются к заполнителям с помощью метода AddWithValue.

Подготовленный оператор выполняется. Мы используем ExecuteNonQuery
метод объекта NpgsqlCommand, когда мы ничего не ожидаем
данные, которые необходимо вернуть.

Установка Postgres и pgAdmin

Чтобы начать, перейдите по адресу postgresql.org/download.
и получите последнюю версию PostgreSQL.

PostgreSQL C

Как только сервер заработает, создайте свою первую базу данных.

PostgreSQL C

Как только у вас появится сервер и база данных, вы сможете начать использовать его с C#.

Последнее обновление: 22.11.2021

Для работы с базой данных PostgreSQL в проект необходимо добавить
через пакет Nuget:

PostgreSQL C

Для подключения к параллельной базе данных в PostgreSQL необходимо в окне Package Manager Console выбрать команду Scaffold-DbContext,
в которой находится строка подключения и имя провайдера, то есть (для выполнения этой команды
тоже необходим пакет). Сначала вводится команда Scaffold-DbContext и строка подключения:

PostgreSQL C

С99

В C99 мы можем смешивать объявления с кодом. В старых программах на языке C мы бы
нужно разделить эту строку на две строки.

Мы также можем использовать начальные объявления цикла for.

Заголовки столбцов C# PostgreSQL

В примере мы выбираем все строки из таблицы cars с их
имена столбцов.

Мы получаем имена столбцов с помощью метода GetName
читатель.

Распечатываем данные, возвращенные оператором SQL.
к терминалу.

$ запуск в dotnet
идентификатор имя цена
1 Ауди 52642
2 Мерседес 57127
3 Шкода 9000
4 Вольво 29000
5 Бентли 350000
6 Ситроен 21000
7 Хаммер 41400
8 Фольксваген 21600
9 БМВ 36600

В этой статье мы показали, как программировать базы данных PostgreSQL на C#.

Меня зовут Ян Боднар, я страстный программист с многолетним стажем.
опыт программирования. Я пишу статьи по программированию с 2007 года. Итак
На данный момент я написал более 1400 статей и 8 электронных книг. У меня более восьми лет
опыт преподавания программирования.

Перечислите все учебные пособия по C#.

Использование Postgres в C# со стандартным поставщиком данных (Npgsql)

Официальный пакет для использования Postgres — Npgsql.
. Добавьте его в свой проект с помощью пакета dotnet add Npgsql.

После установки вы можете использовать этот код для создания своей первой таблицы.

con = NpgsqlConnection(
Строка подключения: );
против. Открыть();
вар cmd = NpgsqlCommand();
cmd. Соединение = con;

cmd. CommandText = $»УДАЛИТЬ ТАБЛИЦУ, ЕСЛИ СУЩЕСТВУЮТ учителя»);
cmd. ВыполнитьNonQueryAsync();
cmd. CommandText = «СОЗДАТЬ ТАБЛИЦУ учителей (id ПОСЛЕДОВАТЕЛЬНЫЙ ПЕРВИЧНЫЙ КЛЮЧ», +
+
+
+
);
cmd. ВыполнитьNonQueryAsync();

PostgreSQL C

Давайте посмотрим на некоторые основные операции.

Добавление записей с помощью Npgsql

// использование того же объекта cmd (NpgsqlCommand), что и раньше
cmd. CommandText = $»ВСТАВИТЬ В учителей (имя, фамилия, предмет, зарплата) ЗНАЧЕНИЯ (‘Северус’, ‘Снейп’, ‘Зелья’, 10000)»;
cmd. ВыполнитьNonQueryAsync();

Приведенный выше запрос также можно записать как параметризованный запрос, например:

смд. КомандныйТекст = ;
cmd. Параметры. ДобавитьСоЗначением(,);
cmd. Параметры. ДобавитьСоЗначением(,);
cmd. Параметры. ДобавитьСоЗначением(,);
cmd. Параметры. ДобавитьСоЗначением(,);
cmd. ВыполнитьNonQueryAsync();

Обновление записей с помощью Npgsql

смд. КомандныйТекст = +
+
+
+
+
;
cmd. ВыполнитьNonQueryAsync();

Удаление записей с помощью Npgsql

смд. КомандныйТекст = ;
cmd. ВыполнитьNonQueryAsync();

Чтение записей с помощью Npgsql

Я оставил чтение напоследок, чтобы сравнить, как то же самое выглядит с использованием Dapper.

Получение нескольких строк данных

Программа печатает данные первых пяти строк таблицы Автомобили.

PGresult *res = PQexec(conn, «SELECT * FROM Cars LIMIT 5»);

Этот SQL-запрос возвращает пять строк данных.

int rows = PQntuples(res);

PQntuples возвращает количество строк в результате запроса.

В цикле for мы получаем все три поля строки
с помощью функции PQgetvalue.

$ ./multiple_rows
1 Ауди 52642
2 Мерседес 57127
3 Шкода 9000
4 Вольво 29000
5 Бентли 350000

Это результат работы программы Multiple_rows.

Оцените статью
ФСС Help
Добавить комментарий