Schnellstart: Verwenden von .NET (C#) zum Herstellen einer Verbindung mit Azure Database for PostgreSQL Flexible Server sowie zum Abfragen von Daten

GILT FÜR: Azure Database for PostgreSQL – Flexible Server

In diesem Schnellstart wird gezeigt, wie Sie mithilfe einer C#-Anwendung eine Verbindung mit einer Instanz von Azure Database for PostgreSQL – Flexibler Server herstellen. Es wird veranschaulicht, wie Sie SQL-Anweisungen zum Abfragen, Einfügen, Aktualisieren und Löschen von Daten in der Datenbank verwenden. Bei den Schritten in diesem Artikel wird davon ausgegangen, dass Sie mit der C#-Entwicklung vertraut sind, aber noch keine Erfahrung mit Azure Database for PostgreSQL – Flexibler Server haben.

Voraussetzungen

Für diese Schnellstartanleitung benötigen Sie Folgendes:

  • Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
  • Erstellen Sie eine Instanz von Azure Database for PostgreSQL – Flexibler Server im Azure-Portal.
    oder der Azure CLI, wenn Sie noch keinen besitzen.
  • Verwenden Sie die leere Postgres-Datenbank, die auf dem Server verfügbar ist, oder erstellen Sie eine neue Datenbank.
  • Installieren Sie das .NET SDK für Ihre Plattform (Windows, Ubuntu Linux oder macOS).
  • Installieren Sie Visual Studio, um Ihr Projekt zu erstellen.
  • Installieren Sie das NuGet-Paket Npgsql in Visual Studio.

Abrufen von Verbindungsinformationen

Rufen Sie die Verbindungsinformationen ab, die zum Herstellen einer Verbindung mit der Instanz von Azure Database for PostgreSQL – Flexibler Server erforderlich sind. Sie benötigen den vollqualifizierten Servernamen und die Anmeldeinformationen.

  1. Melden Sie sich beim Azure-Portalan.
  2. Klicken Sie im Azure-Portal im linken Menü auf Alle Ressourcen, und suchen Sie dann nach dem soeben erstellten Server, z.B. mydemoserver.
  3. Klicken Sie auf den Servernamen.
  4. Notieren Sie sich im Bereich Übersicht des Servers den Servernamen und den Anmeldenamen des Serveradministrators. Wenn Sie Ihr Kennwort vergessen haben, können Sie es in diesem Bereich auch zurücksetzen. Azure Database for PostgreSQL flexible server instance name.

Schritt 1: Herstellen einer Verbindung und Einfügen von Daten

Verwenden Sie den folgenden Code, um eine Verbindung herzustellen und die Daten zu laden, indem Sie die SQL-Anweisungen CREATE TABLE und INSERT INTO verwenden. Im Code wird die NpgsqlCommand-Klasse mit einer der folgenden Methoden verwendet:

  • Open() zum Herstellen einer Verbindung mit der Datenbank in Azure Database for PostgreSQL – Flexibler Server.
  • CreateCommand() zum Festlegen der Eigenschaft „CommandText“
  • ExecuteNonQuery() zum Ausführen der Datenbankbefehle

Wichtig

Ersetzen Sie die Parameter „Host“, „DBName“, „User“ und „Password“ durch die Werte, die Sie beim Erstellen des Servers und der Datenbank angegeben haben.

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();
        }
    }
}

Treten Probleme auf? Teilen Sie es uns mit.

Schritt 2: Lesen von Daten

Verwenden Sie den folgenden Code, um die Daten mit einer SELECT-SQL-Anweisung zu verbinden und zu lesen. Im Code wird die NpgsqlCommand-Klasse mit einer der folgenden Methoden verwendet:

Wichtig

Ersetzen Sie die Parameter „Host“, „DBName“, „User“ und „Password“ durch die Werte, die Sie beim Erstellen des Servers und der Datenbank angegeben haben.

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();
        }
    }
}

Treten Probleme auf? Teilen Sie es uns mit.

Schritt 3: Aktualisieren von Daten

Verwenden Sie den folgenden Code, um eine Verbindung herzustellen und die Daten mit der SQL-Anweisung UPDATE zu aktualisieren. Im Code wird die NpgsqlCommand-Klasse mit einer der folgenden Methoden verwendet:

  • Open() zum Herstellen einer Verbindung mit Azure Database for PostgreSQL – Flexibler Server.
  • CreateCommand() zum Festlegen der Eigenschaft „CommandText“
  • ExecuteNonQuery() zum Ausführen der Datenbankbefehle

Wichtig

Ersetzen Sie die Parameter „Host“, „DBName“, „User“ und „Password“ durch die Werte, die Sie beim Erstellen des Servers und der Datenbank angegeben haben.

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();
        }
    }
}


Treten Probleme auf? Teilen Sie es uns mit.

Schritt 4: Löschen von Daten

Verwenden Sie den folgenden Code, um die Daten mit einer DELETE-SQL-Anweisung zu verbinden und zu löschen.

Der Code verwendet die NpgsqlCommand-Klasse mit der Open()-Methode, um eine Verbindung mit der Datenbank in Azure Database for PostgreSQL – Flexibler Server herzustellen. Anschließend wird im Code die CreateCommand()-Methode verwendet, die CommandText-Eigenschaft festgelegt und die ExecuteNonQuery()-Methode aufgerufen, um die Datenbankbefehle auszuführen.

Wichtig

Ersetzen Sie die Parameter „Host“, „DBName“, „User“ und „Password“ durch die Werte, die Sie beim Erstellen des Servers und der Datenbank angegeben haben.

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();
        }
    }
}

Bereinigen von Ressourcen

Löschen Sie die Ressourcengruppe mit dem folgenden Befehl, um alle in dieser Schnellstartanleitung verwendeten Ressourcen zu bereinigen:

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

Nächste Schritte