Краткое руководство. Использование .NET (C#) для подключения и запроса данных в База данных Azure для PostgreSQL — гибкий сервер
ОБЛАСТЬ ПРИМЕНЕНИЯ: База данных Azure для PostgreSQL — гибкий сервер
В этом кратком руководстве показано, как подключиться к База данных Azure для PostgreSQL гибкому экземпляру сервера с помощью приложения C#. Здесь также показано, как использовать инструкции SQL для запроса, вставки, обновления и удаления данных в базе данных. В этой статье предполагается, что вы знакомы с разработкой с помощью C#, и что вы не знакомы с База данных Azure для PostgreSQL гибким сервером.
Необходимые компоненты
Для целей этого краткого руководства понадобится:
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
- Создайте экземпляр База данных Azure для PostgreSQL — гибкий сервер, если у вас его нет.
- Используйте пустую базу данных postgres, доступную на сервере, или создайте новую базу данных.
- Установить пакет SDK для .NET для своей платформы (Windows, Ubuntu Linux или macOS).
- Установить Visual Studio, чтобы выполнить сборку проекта.
- Установить пакет NuGet Npgsql в Visual Studio.
Получение сведений о подключении
Получите сведения о подключении, необходимые для подключения к База данных Azure для PostgreSQL гибкому экземпляру сервера. Вам потребуется полное имя сервера и учетные данные для входа.
- Войдите на портал Azure.
- В меню слева на портале Azure щелкните Все ресурсы и выполните поиск по имени созданного сервера (например, mydemoserver).
- Щелкните имя сервера.
- Запишите имя сервера и имя для входа администратора сервера с панели сервера Обзор. Если вы забыли свой пароль, можно также сбросить пароль с помощью этой панели.
Шаг 1. Подключение и вставка данных
Используйте приведенный ниже код для подключения и загрузки данных с помощью инструкций SQL CREATE TABLE и INSERT INTO. В коде используется класс NpgsqlCommand с методом:
- Open() для установления подключения к гибкой базе данных сервера База данных Azure для PostgreSQL.
- CreateCommand (), чтобы задать свойство CommandText.
- ExecuteNonQuery (), чтобы выполнять команды базы данных.
Внимание
Замените значения параметров Host, DBName, User и Password значениями, указанными при создании сервера и базы данных.
using System;
using Npgsql;
namespace Driver
{
public class AzurePostgresCreate
{
// Obtain connection string information from the portal
//
private static string Host = "mydemoserver.postgres.database.azure.com";
private static string User = "mylogin";
private static string DBname = "postgres";
private static string Password = "<server_admin_password>";
private static string Port = "5432";
static void Main(string[] args)
{
// Build connection string using parameters from portal
//
string connString =
String.Format(
"Server={0};Username={1};Database={2};Port={3};Password={4};SSLMode=Prefer",
Host,
User,
DBname,
Port,
Password);
using (var conn = new NpgsqlConnection(connString))
{
Console.Out.WriteLine("Opening connection");
conn.Open();
using (var command = new NpgsqlCommand("DROP TABLE IF EXISTS inventory", conn))
{
command.ExecuteNonQuery();
Console.Out.WriteLine("Finished dropping table (if existed)");
}
using (var command = new NpgsqlCommand("CREATE TABLE inventory(id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER)", conn))
{
command.ExecuteNonQuery();
Console.Out.WriteLine("Finished creating table");
}
using (var command = new NpgsqlCommand("INSERT INTO inventory (name, quantity) VALUES (@n1, @q1), (@n2, @q2), (@n3, @q3)", conn))
{
command.Parameters.AddWithValue("n1", "banana");
command.Parameters.AddWithValue("q1", 150);
command.Parameters.AddWithValue("n2", "orange");
command.Parameters.AddWithValue("q2", 154);
command.Parameters.AddWithValue("n3", "apple");
command.Parameters.AddWithValue("q3", 100);
int nRows = command.ExecuteNonQuery();
Console.Out.WriteLine(String.Format("Number of rows inserted={0}", nRows));
}
}
Console.WriteLine("Press RETURN to exit");
Console.ReadLine();
}
}
}
Возникли проблемы? Сообщите нам об этом.
Шаг 2. Чтение данных
Используйте указанный ниже код с инструкцией SQL SELECT для подключения и чтения данных. В коде используется класс NpgsqlCommand с методом:
- Open(), чтобы установить соединение с PostgreSQL.
- CreateCommand() и ExecuteReader(), чтобы выполнять команды базы данных.
- Read(), чтобы перейти к записи в результирующем наборе.
- GetInt32() и GetString(), чтобы анализировать значения в записи.
Внимание
Замените значения параметров Host, DBName, User и Password значениями, указанными при создании сервера и базы данных.
using System;
using Npgsql;
namespace Driver
{
public class AzurePostgresRead
{
// Obtain connection string information from the portal
//
private static string Host = "mydemoserver.postgres.database.azure.com";
private static string User = "mylogin";
private static string DBname = "postgres";
private static string Password = "<server_admin_password>";
private static string Port = "5432";
static void Main(string[] args)
{
// Build connection string using parameters from portal
//
string connString =
String.Format(
"Server={0}; User Id={1}; Database={2}; Port={3}; Password={4};SSLMode=Prefer",
Host,
User,
DBname,
Port,
Password);
using (var conn = new NpgsqlConnection(connString))
{
Console.Out.WriteLine("Opening connection");
conn.Open();
using (var command = new NpgsqlCommand("SELECT * FROM inventory", conn))
{
var reader = command.ExecuteReader();
while (reader.Read())
{
Console.WriteLine(
string.Format(
"Reading from table=({0}, {1}, {2})",
reader.GetInt32(0).ToString(),
reader.GetString(1),
reader.GetInt32(2).ToString()
)
);
}
reader.Close();
}
}
Console.WriteLine("Press RETURN to exit");
Console.ReadLine();
}
}
}
Возникли проблемы? Сообщите нам об этом.
Шаг 3. Обновление данных
Используйте указанный ниже код с инструкцией SQL UPDATE для подключения и обновления данных. В коде используется класс NpgsqlCommand с методом:
- Open() для установления подключения к База данных Azure для PostgreSQL гибкому серверу.
- CreateCommand (), чтобы задать свойство CommandText.
- ExecuteNonQuery (), чтобы выполнять команды базы данных.
Внимание
Замените значения параметров Host, DBName, User и Password значениями, указанными при создании сервера и базы данных.
using System;
using Npgsql;
namespace Driver
{
public class AzurePostgresUpdate
{
// Obtain connection string information from the portal
//
private static string Host = "mydemoserver.postgres.database.azure.com";
private static string User = "mylogin";
private static string DBname = "postgres";
private static string Password = "<server_admin_password>";
private static string Port = "5432";
static void Main(string[] args)
{
// Build connection string using parameters from portal
//
string connString =
String.Format(
"Server={0}; User Id={1}; Database={2}; Port={3}; Password={4};SSLMode=Prefer",
Host,
User,
DBname,
Port,
Password);
using (var conn = new NpgsqlConnection(connString))
{
Console.Out.WriteLine("Opening connection");
conn.Open();
using (var command = new NpgsqlCommand("UPDATE inventory SET quantity = @q WHERE name = @n", conn))
{
command.Parameters.AddWithValue("n", "banana");
command.Parameters.AddWithValue("q", 200);
int nRows = command.ExecuteNonQuery();
Console.Out.WriteLine(String.Format("Number of rows updated={0}", nRows));
}
}
Console.WriteLine("Press RETURN to exit");
Console.ReadLine();
}
}
}
Возникли проблемы? Сообщите нам об этом.
Шаг 4. Удаление данных
Используйте указанный ниже код с инструкцией SQL DELETE для подключения и удаления данных.
Код использует класс NpgsqlCommand с методом Open() для установления подключения к гибкой базе данных сервера База данных Azure для PostgreSQL. Затем код использует метод CreateCommand(), устанавливает свойство CommandText и вызывает метод ExecuteNonQuery(), чтобы выполнить команды базы данных.
Внимание
Замените значения параметров Host, DBName, User и Password значениями, указанными при создании сервера и базы данных.
using System;
using Npgsql;
namespace Driver
{
public class AzurePostgresDelete
{
// Obtain connection string information from the portal
//
private static string Host = "mydemoserver.postgres.database.azure.com";
private static string User = "mylogin@mydemoserver";
private static string DBname = "postgres";
private static string Password = "<server_admin_password>";
private static string Port = "5432";
static void Main(string[] args)
{
// Build connection string using parameters from portal
//
string connString =
String.Format(
"Server={0}; User Id={1}; Database={2}; Port={3}; Password={4};SSLMode=Prefer",
Host,
User,
DBname,
Port,
Password);
using (var conn = new NpgsqlConnection(connString))
{
Console.Out.WriteLine("Opening connection");
conn.Open();
using (var command = new NpgsqlCommand("DELETE FROM inventory WHERE name = @n", conn))
{
command.Parameters.AddWithValue("n", "orange");
int nRows = command.ExecuteNonQuery();
Console.Out.WriteLine(String.Format("Number of rows deleted={0}", nRows));
}
}
Console.WriteLine("Press RETURN to exit");
Console.ReadLine();
}
}
}
Очистка ресурсов
Чтобы очистить все ресурсы, используемые во время этого краткого руководства, удалите группу ресурсов с помощью следующей команды:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes
Поделитесь своими предложениями и ошибками с помощью команды База данных Azure для PostgreSQL продукта.
Связанный контент
- Управление База данных Azure для PostgreSQL — гибкий сервер.
- Краткое руководство. Использование Python для подключения и запроса данных из экземпляра База данных Azure для PostgreSQL гибкого сервера.
- Краткое руководство. Использование Java для подключения и запроса данных из экземпляра База данных Azure для PostgreSQL гибкого сервера.
- Краткое руководство. Использование языка Go для подключения и запроса данных из экземпляра База данных Azure для PostgreSQL гибкого сервера.
- Краткое руководство. Использование PHP для подключения и запроса данных из экземпляра База данных Azure для PostgreSQL гибкого сервера.
- Краткое руководство. Использование Azure CLI для подключения и запроса данных из экземпляра База данных Azure для PostgreSQL гибкого сервера.
- Краткое руководство. Импорт данных из База данных Azure для PostgreSQL — гибкий сервер в Power BI.