Snabbstart: Använd .NET (C#) för att ansluta och fråga efter data i Azure Database for PostgreSQL flexibel server

Den här snabbstarten visar hur du ansluter till en Azure Database for PostgreSQL flexibel server med hjälp av ett C#-program. Den visar hur du använder SQL-instruktioner för att fråga, infoga, uppdatera och ta bort data i databasen. Stegen i den här artikeln förutsätter att du är bekant med att utveckla med hjälp av C#, och att du är nybörjare på att arbeta med Azure Database for PostgreSQL.

Förutsättningar

För den här snabbstarten behöver du:

Hämta anslutningsinformation

Hämta den anslutningsinformation som behövs för att ansluta till den Azure Database for PostgreSQL flexibla servern. Du behöver det fullständigt kvalificerade servernamnet och autentiseringsuppgifterna.

Använd Azure-portalen:

  1. På den vänstra menyn i Azure portalen väljer du Alla resurser och söker sedan efter den server som du skapade.

  2. Välj servernamnet.

  3. I resursmenyn väljer du Översikt.

    Skärmbild som visar sidan Översikt.

  4. Kopiera värdena som visas som Slutpunkt och Administratörsinloggning.

    Skärmbild som visar värdena för slutpunkts- och administratörsinloggning på sidan Översikt.

  5. Om du glömmer lösenordet för administratörsautentiseringen återställer du det med hjälp av knappen Återställ lösenord .

    Skärmbild som visar knappen Återställ lösenord på sidan Översikt.

Steg 1: Ansluta och infoga data

Använd följande kod för att ansluta och läsa in data med hjälp av SQL-instruktionerna CREATE TABLE och INSERT INTO. Koden använder klassen NpgsqlCommand med följande metoder:

  • Öppna() för att upprätta en anslutning till Azure Database for PostgreSQL– flexibel serverdatabas.
  • CreateCommand() för att ange egenskapen CommandText.
  • ExecuteNonQuery() -metod för att köra databaskommandona.

Viktigt!

Ersätt parametrarna Host, DBName, User och Password med de värden som du angav när du skapade servern och databasen.

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

Har du några problem? Berätta för oss.

Steg 2: Läsa data

Använd följande kod för att ansluta och läsa data med en SELECT-SQL-instruktion. Koden använder klassen NpgsqlCommand med följande metoder:

Viktigt!

Ersätt parametrarna Host, DBName, User och Password med de värden som du angav när du skapade servern och databasen.

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

Har du några problem? Berätta för oss.

Steg 3: Uppdatera data

Använd följande kod för att ansluta till databasen och uppdatera data med hjälp av en UPDATE SQL-instruktion . Koden använder NpgsqlCommand klassen med följande metoder:

  • Open() för att upprätta en anslutning till Azure Database for PostgreSQL – flexibel server.
  • CreateCommand() för att ange egenskapen CommandText .
  • ExecuteNonQuery() -metod för att köra databaskommandona.

Viktigt!

Ersätt parametrarna Host, DBName, User och Password med de värden som du angav när du skapade servern och databasen.

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


Har du några problem? Berätta för oss.

Steg 4: Ta bort data

Använd följande kod för att ansluta till databasen och ta bort data med hjälp av en DELETE SQL-instruktion .

Koden använder NpgsqlCommand -klassen med metoden Open() för att upprätta en anslutning till Azure Database for PostgreSQL flexibel serverdatabas. Sedan använder koden metoden CreateCommand(), anger CommandText egenskapen och anropar metoden ExecuteNonQuery() för att köra databaskommandona.

Viktigt!

Ersätt parametrarna Host, DBName, User och Password med de värden som du angav när du skapade servern och databasen.

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

Rensa resurser

Om du vill rensa alla resurser som används under den här snabbstarten tar du bort resursgruppen med hjälp av följande kommando:

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