Delen via


Quickstart: .NET (C#) gebruiken om verbinding te maken met en query's uit te voeren op gegevens in Azure Database for PostgreSQL - Flexible Server

VAN TOEPASSING OP: Azure Database for PostgreSQL - Flexibele server

In deze quickstart ziet u hoe u verbinding maakt met een exemplaar van een flexibele Azure Database for PostgreSQL-server met behulp van een C#-toepassing. U ziet hier hoe u SQL-instructies gebruikt om gegevens in de database op te vragen, in te voegen, bij te werken en te verwijderen. In de stappen in dit artikel wordt ervan uitgegaan dat u bekend bent met het ontwikkelen met C# en dat u geen ervaring hebt met het werken met flexibele Azure Database for PostgreSQL-server.

Vereisten

Voor deze quickstart hebt u het volgende nodig:

Verbindingsgegevens ophalen

Haal de verbindingsgegevens op die nodig zijn om verbinding te maken met het flexibele serverexemplaren van Azure Database for PostgreSQL. U hebt de volledig gekwalificeerde servernaam en aanmeldingsreferenties nodig.

Azure Portal gebruiken:

  1. Klik in het linkermenu in Azure Portal op Alle resources en zoek naar de server die u hebt gemaakt.

  2. Klik op de servernaam.

  3. Selecteer Overzicht in het resourcemenu.

    Schermopname van de pagina Overzicht.

  4. Kopieer de waarden die worden weergegeven als eindpunt- en beheerdersaanmelding.

    Schermopname van de waarden voor aanmelding bij eindpunt en beheerder op de pagina Overzicht.

  5. Als u het wachtwoord van de aanmelding van de beheerder bent vergeten, kunt u het opnieuw instellen met behulp van de knop Wachtwoord opnieuw instellen.

    Schermopname van de knop Wachtwoord opnieuw instellen op de pagina Overzicht.

Stap 1: Verbinding maken en gegevens invoegen

Gebruik de volgende code om verbinding te maken en de gegevens te laden met de SQL-instructies CREATE TABLE EN INSERT INTO. De code maakt gebruik van de klasse NpgsqlCommand met de methode:

  • Open() om een verbinding tot stand te brengen met de flexibele Server-database van Azure Database for PostgreSQL.
  • Met CreateCommand() wordt de eigenschap CommandText ingesteld.
  • Met de methode ExecuteNonQuery() worden de databaseopdrachten uitgevoerd.

Belangrijk

Vervang de parameters Host, DBName, User en Password door de waarden die u hebt opgegeven tijdens het maken van de server en database.

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

Ondervindt u problemen? Laat het ons weten.

Stap 2: Gegevens lezen

Gebruik de volgende code om verbinding te maken en de gegevens te lezen met de SQL-instructie SELECT. De code maakt gebruik van de klasse NpgsqlCommand met de methode:

Belangrijk

Vervang de parameters Host, DBName, User en Password door de waarden die u hebt opgegeven tijdens het maken van de server en database.

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

Ondervindt u problemen? Laat het ons weten.

Stap 3: Gegevens bijwerken

Gebruik de volgende code om verbinding te maken en de gegevens bij te werken met een SQL-instructie UPDATE. De code maakt gebruik van de klasse NpgsqlCommand met de methode:

  • Open() om een verbinding tot stand te brengen met een flexibele Azure Database for PostgreSQL-server.
  • Met CreateCommand() wordt de eigenschap CommandText ingesteld.
  • Met de methode ExecuteNonQuery() worden de databaseopdrachten uitgevoerd.

Belangrijk

Vervang de parameters Host, DBName, User en Password door de waarden die u hebt opgegeven tijdens het maken van de server en database.

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


Ondervindt u problemen? Laat het ons weten.

Stap 4: Gegevens verwijderen

Gebruik de volgende code om verbinding te maken en gegevens te verwijderen met de SQL-instructie DELETE.

De code maakt gebruik van de klasse NpgsqlCommand met methode Open() om een verbinding tot stand te brengen met de flexibele Server-database van Azure Database for PostgreSQL. Vervolgens wordt de methode CreateCommand() gebruikt, de eigenschap CommandText ingesteld en de methode ExecuteNonQuery() aangeroepen om de databaseopdrachten uit te voeren.

Belangrijk

Vervang de parameters Host, DBName, User en Password door de waarden die u hebt opgegeven tijdens het maken van de server en database.

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

Resources opschonen

Als u alle resources wilt opschonen die tijdens deze quickstart zijn gebruikt, verwijdert u de resourcegroep. Dit kan met de volgende opdracht:

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