Szybki start: nawiązywanie połączeń z danymi w usłudze Azure Database for PostgreSQL i wykonywanie zapytań względem nich za pomocą platformy .NET — serwer elastyczny
DOTYCZY: Azure Database for PostgreSQL — serwer elastyczny
W tym przewodniku Szybki start pokazano, jak nawiązać połączenie z elastycznym wystąpieniem serwera usługi Azure Database for PostgreSQL przy użyciu aplikacji języka C#. Pokazano w nim, jak używać instrukcji języka SQL w celu wysyłania zapytań o dane oraz wstawiania, aktualizowania i usuwania danych w bazie danych. W krokach opisanych w tym artykule założono, że wiesz już, jak programować przy użyciu języka C#, i dopiero zaczynasz pracę z elastycznym serwerem usługi Azure Database for PostgreSQL.
Wymagania wstępne
W tym przewodniku Szybki start potrzebne są następujące elementy:
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Tworzenie wystąpienia serwera elastycznego usługi Azure Database for PostgreSQL przy użyciu witryny Azure Portal
lub interfejs wiersza polecenia platformy Azure, jeśli go nie masz. - Użyj pustej bazy danych postgres dostępnej na serwerze lub utwórz nową bazę danych.
- Zainstaluj zestaw SDK platformy .NET dla swojej platformy (Windows, Ubuntu Linux lub macOS).
- Zainstaluj program Visual Studio , aby skompilować projekt.
- Zainstaluj pakiet NuGet npgsql w programie Visual Studio.
Pobieranie informacji o połączeniu
Uzyskaj informacje o połączeniu potrzebne do nawiązania połączenia z wystąpieniem serwera elastycznego usługi Azure Database for PostgreSQL. Potrzebna jest w pełni kwalifikowana nazwa serwera i poświadczenia logowania.
- Zaloguj się w witrynie Azure Portal.
- W menu po lewej stronie w witrynie Azure Portal kliknij pozycję Wszystkie zasoby i wyszukaj utworzony serwer, taki jak mydemoserver.
- Kliknij nazwę serwera.
- Po przejściu do panelu Przegląd serwera zanotuj nazwę serwera i nazwę logowania administratora serwera. Jeśli zapomnisz hasła, możesz również je zresetować z poziomu tego panelu.
Krok 1. Łączenie i wstawianie danych
Użyj poniższego kodu, aby nawiązać połączenie i załadować dane przy użyciu instrukcji CREATE TABLE i INSERT INTO języka SQL. Kod używa klasy NpgsqlCommand z metodą:
- Open() w celu nawiązania połączenia z elastyczną bazą danych serwera usługi Azure Database for PostgreSQL.
- Polecenie CreateCommand() ustawia właściwość CommandText.
- ExecuteNonQuery() metoda uruchamiania poleceń bazy danych.
Ważne
Zastąp parametry hosta, nazwy bazy danych, użytkownika i hasła wartościami, które zostały określone podczas tworzenia serwera i bazy danych.
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();
}
}
}
Masz jakieś problemy? Daj nam znać.
Krok 2. Odczytywanie danych
Użyj poniższego kodu, aby nawiązać połączenie i odczytać dane za pomocą instrukcji SELECT języka SQL. Kod używa klasy NpgsqlCommand z metodą:
- Open() w celu nawiązania połączenia z bazą danych PostgreSQL.
- Polecenia CreateCommand() i ExecuteReader() umożliwiają uruchamianie poleceń bazy danych.
- Read(), aby przejść do rekordu w wynikach.
- GetInt32() i GetString(), aby przeanalizować wartości w rekordzie.
Ważne
Zastąp parametry hosta, nazwy bazy danych, użytkownika i hasła wartościami, które zostały określone podczas tworzenia serwera i bazy danych.
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();
}
}
}
Masz jakieś problemy? Daj nam znać.
Krok 3. Aktualizowanie danych
Użyj poniższego kodu, aby nawiązać połączenie i zaktualizować dane za pomocą instrukcji UPDATE języka SQL. Kod używa klasy NpgsqlCommand z metodą:
- Open() w celu nawiązania połączenia z serwerem elastycznym usługi Azure Database for PostgreSQL.
- CreateCommand(), ustawia właściwość CommandText.
- ExecuteNonQuery() metoda uruchamiania poleceń bazy danych.
Ważne
Zastąp parametry hosta, nazwy bazy danych, użytkownika i hasła wartościami, które zostały określone podczas tworzenia serwera i bazy danych.
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();
}
}
}
Masz jakieś problemy? Daj nam znać.
Krok 4. Usuwanie danych
Użyj poniższego kodu, aby nawiązać połączenie i usunąć dane za pomocą instrukcji DELETE języka SQL.
Kod używa klasy NpgsqlCommand z metodą Open(), aby nawiązać połączenie z elastyczną bazą danych serwera usługi Azure Database for PostgreSQL. Następnie kod używa metody CreateCommand(), ustawia właściwość CommandText i wywołuje metodę ExecuteNonQuery(), aby uruchamiać polecenia bazy danych.
Ważne
Zastąp parametry hosta, nazwy bazy danych, użytkownika i hasła wartościami, które zostały określone podczas tworzenia serwera i bazy danych.
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();
}
}
}
Czyszczenie zasobów
Aby wyczyścić wszystkie zasoby używane w tym przewodniku Szybki start, usuń grupę zasobów przy użyciu następującego polecenia:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes