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

GÄLLER FÖR: Azure Database for PostgreSQL – flexibel server

Den här snabbstarten visar hur du ansluter till en flexibel Azure Database for PostgreSQL-serverinstans 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 C#, och att du är nybörjare på att arbeta med Azure Database for PostgreSQL – flexibel server.

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 flexibla serverinstansen Azure Database for PostgreSQL. Du behöver det fullständiga servernamnet och inloggningsuppgifter.

  1. Logga in på Azure-portalen.
  2. På den vänstra menyn i Azure Portal klickar du på Alla resurser. Sök sedan efter den server som du skapade (till exempel mydemoserver).
  3. Klicka på servernamnet.
  4. På serverpanelen Översikt antecknar du Servernamn och Inloggningsnamn för serveradministratören. Om du glömmer lösenordet kan du även återställa det på den här panelen. Azure Database for PostgreSQL flexible server instance name.

Steg 1: Anslut 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. Koden använder klassen NpgsqlCommand med metoden:

  • Öppna() för att upprätta en anslutning till Azure Database for PostgreSQL– flexibel serverdatabas.
  • CreateCommand() anger 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 metoden:

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 och uppdatera data med SQL-instruktionen UPDATE. Koden använder klassen NpgsqlCommand med metoden:

  • Öppna() för att upprätta en anslutning till en flexibel Azure Database for PostgreSQL-server.
  • CreateCommand(), anger 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 och läsa data med SQL-instruktionen DELETE.

Koden använder klassen NpgsqlCommand med metoden Open() för att upprätta en anslutning till azure database for PostgreSQL– flexibel serverdatabas. Sedan använder koden metoden CreateCommand(), anger egenskapen CommandText 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 följande kommando:

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

Nästa steg