Szybki start: używanie .NET (C#) do nawiązywania połączeń i wykonywania zapytań o dane na serwerze elastycznym Azure Database for PostgreSQL

W tym przewodniku Szybki start pokazano, jak nawiązać połączenie z serwerem elastycznym 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 w tym artykule założono, że wiesz już, jak programować przy użyciu języka C#, i dopiero zaczynasz pracę z Azure Database for PostgreSQL.

Wymagania wstępne

Do szybkiego startu potrzebujesz:

Uzyskaj informacje o połączeniu

Uzyskaj informacje o połączeniu potrzebne do nawiązania połączenia z serwerem elastycznym Azure Database for PostgreSQL. Potrzebujesz w pełni kwalifikowanej nazwy serwera i poświadczeń uwierzytelniania.

Użyj portalu Azure:

  1. W menu po lewej stronie w portalu Azure wybierz pozycję Wszystkie zasoby, a następnie wyszukaj utworzony serwer.

  2. Wybierz nazwę serwera.

  3. W menu zasobów wybierz pozycję Przegląd.

    Zrzut ekranu przedstawiający stronę Przegląd.

  4. Skopiuj wartości wyświetlane jako Punkt końcowy i Login administratora.

    Zrzut ekranu przedstawiający wartości logowania punktu końcowego i administratora na stronie Przegląd.

  5. Jeśli zapomnisz hasło do uwierzytelniania administratora, zresetuj je przy użyciu przycisku Resetuj hasło .

    Zrzut ekranu przedstawiający przycisk Resetuj hasło na stronie Przegląd.

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 następującymi metodami:

  • Open() w celu nawiązania połączenia z elastyczną bazą danych serwera usługi Azure Database for PostgreSQL.
  • CreateCommand(), aby ustawić 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 następującymi metodami:

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 z bazą danych i zaktualizować dane przy użyciu instrukcji UPDATE SQL. Kod używa NpgsqlCommand klasy z następującymi metodami:

  • Open() w celu nawiązania połączenia z serwerem elastycznym Azure Database for PostgreSQL.
  • CreateCommand(), aby ustawić 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 z bazą danych i usunąć dane przy użyciu instrukcji DELETE języka SQL.

Kod używa NpgsqlCommand klasy z metodą Open(), aby nawiązać połączenie z bazą danych serwera elastycznego Azure Database for PostgreSQL. Następnie kod używa metody CreateCommand(), ustawia CommandText właściwość i wywołuje metodę ExecuteNonQuery(), aby uruchomić 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();
        }
    }
}

Uprzątnij zasoby

Aby usunąć wszystkie zasoby używane w tym przewodniku Szybki start, usuń grupę zasobów za pomocą następującego polecenia:

az group delete \
    --name $AZ_RESOURCE_GROUP \
    --yes