Rychlý start: Použití .NET (C#) k připojení a dotazování dat na flexibilním serveru Azure Database for PostgreSQL
PLATÍ PRO: Flexibilní server Azure Database for PostgreSQL
Tento rychlý start ukazuje, jak se připojit k instanci flexibilního serveru Azure Database for PostgreSQL pomocí aplikace jazyka C#. Ukazuje, jak pomocí příkazů jazyka SQL dotazovat, vkládat, aktualizovat a odstraňovat data v databázi. Kroky v tomto článku předpokládají, že máte zkušenosti s vývojem pomocí jazyka C# a že začínáte pracovat s flexibilním serverem Azure Database for PostgreSQL.
Požadavky
Pro účely tohoto rychlého startu potřebujete:
- Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
- Pokud ji nemáte, vytvořte instanci flexibilního serveru Azure Database for PostgreSQL.
- Použijte prázdnou databázi postgres dostupnou na serveru nebo vytvořte novou databázi.
- Nainstalujte sadu .NET SDK pro vaši platformu (Windows, Ubuntu Linux nebo macOS) pro vaši platformu.
- Nainstalujte visual Studio pro sestavení projektu.
- Nainstalujte balíček NuGet Npgsql v sadě Visual Studio.
Získání informací o připojení
Získejte informace o připojení potřebné k připojení k instanci flexibilního serveru Azure Database for PostgreSQL. Potřebujete plně kvalifikovaný název serveru a přihlašovací údaje.
- Přihlaste se k webu Azure Portal.
- V nabídce vlevo na webu Azure Portal klikněte na Všechny prostředky a vyhledejte vytvořený server (například mydemoserver).
- Klikněte na název serveru.
- Na panelu Přehled serveru si poznamenejte Název serveru a Přihlašovací jméno správce serveru. Pokud zapomenete své heslo, můžete ho na tomto panelu také resetovat.
Krok 1: Připojení a vložení dat
Použijte následující kód k připojení a načtení dat pomocí příkazů CREATE TABLE a INSERT INTO jazyka SQL. Kód používá NpgsqlCommand třídy s metodou:
- Open() pro navázání připojení k flexibilní serverové databázi Azure Database for PostgreSQL.
- CreateCommand() nastaví vlastnost CommandText.
- Metoda ExecuteNonQuery() pro spuštění databázových příkazů.
Důležité
Nahraďte parametry Host (hostitel), DBName (název databáze), User (uživatel) a Password (heslo) hodnotami, které jste zadali při vytváření vlastního serveru a databáze.
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();
}
}
}
Máte nějaké problémy? Dejte nám vědět.
Krok 2: Čtení dat
Pomocí následujícího kódu se připojte a načtěte data s využitím příkazu SELECT jazyka SQL. Kód používá NpgsqlCommand třídy s metodou:
- Open() pro navázání připojení k PostgreSQL.
- CreateCommand() a ExecuteReader() pro spuštění databázových příkazů.
- Read() pro přechod na záznam ve výsledcích.
- Funkce GetInt32() a GetString() parsuje hodnoty v záznamu.
Důležité
Nahraďte parametry Host (hostitel), DBName (název databáze), User (uživatel) a Password (heslo) hodnotami, které jste zadali při vytváření vlastního serveru a databáze.
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();
}
}
}
Máte nějaké problémy? Dejte nám vědět.
Krok 3: Aktualizace dat
Pomocí následujícího kódu se připojte a aktualizujte data s využitím příkazu UPDATE jazyka SQL. Kód používá NpgsqlCommand třídy s metodou:
- Open() pro navázání připojení k flexibilnímu serveru Azure Database for PostgreSQL.
- CreateCommand() nastaví vlastnost CommandText.
- Metoda ExecuteNonQuery() pro spuštění databázových příkazů.
Důležité
Nahraďte parametry Host (hostitel), DBName (název databáze), User (uživatel) a Password (heslo) hodnotami, které jste zadali při vytváření vlastního serveru a databáze.
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();
}
}
}
Máte nějaké problémy? Dejte nám vědět.
Krok 4: Odstranění dat
Pomocí následujícího kódu se připojte a odstraňte data s využitím příkazu DELETE jazyka SQL.
Kód používá třídu NpgsqlCommand s metodou Open() k navázání připojení k flexibilní serverové databázi Azure Database for PostgreSQL. Potom tento kód použije metodu CreateCommand(), nastaví vlastnost CommandText a volá metodu ExecuteNonQuery() pro spuštění databázových příkazů.
Důležité
Nahraďte parametry Host (hostitel), DBName (název databáze), User (uživatel) a Password (heslo) hodnotami, které jste zadali při vytváření vlastního serveru a databáze.
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();
}
}
}
Vyčištění prostředků
Pokud chcete vyčistit všechny prostředky použité během tohoto rychlého startu, odstraňte skupinu prostředků pomocí následujícího příkazu:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes
Související obsah
- Správa flexibilního serveru Azure Database for PostgreSQL
- Rychlý start: Použití Pythonu k připojení a dotazování dat z instance flexibilního serveru Azure Database for PostgreSQL
- Rychlý start: Použití Javy k připojení a dotazování dat z instance flexibilního serveru Azure Database for PostgreSQL
- Rychlý start: Použití jazyka Go k připojení a dotazování dat z instance flexibilního serveru Azure Database for PostgreSQL
- Rychlý start: Použití PHP k připojení a dotazování dat z instance flexibilního serveru Azure Database for PostgreSQL
- Rychlý start: Použití Azure CLI k připojení a dotazování dat z instance flexibilního serveru Azure Database for PostgreSQL
- Rychlý start: Import dat z flexibilního serveru Azure Database for PostgreSQL v Power BI