Hızlı Başlangıç: Esnek PostgreSQL için Azure Veri Tabanı sunucuya bağlanmak ve verileri sorgulamak için .NET (C#) kullanma

Bu hızlı başlangıçta C# uygulaması kullanarak PostgreSQL için Azure Veri Tabanı esnek bir sunucuya nasıl bağlandığınız gösterilmektedir. Veritabanında verileri sorgulamak, eklemek, güncellemek ve silmek için SQL ifadelerinin nasıl kullanılacağı gösterilmektedir. Bu makaledeki adımlarda C# kullanarak geliştirme konusunda bilgi sahibi olduğunuz ve PostgreSQL için Azure Veri Tabanı ile çalışmaya yeni olduğunuz varsayılır.

Önkoşullar

Bu hızlı başlangıç için şunları yapmanız gerekir:

Bağlantı bilgilerini alma

PostgreSQL için Azure Veri Tabanı esnek sunucuya bağlanmak için gereken bağlantı bilgilerini alın. Tam sunucu adına ve kimlik doğrulaması kimlik bilgilerine ihtiyacınız vardır.

Azure portalını kullanın:

  1. Azure portalındaki sol taraftaki menüden Tüm kaynaklar'ı seçin ve oluşturduğunuz sunucuyu arayın.

  2. Sunucu adını seçin.

  3. Kaynak menüsünde Genel Bakış'ı seçin.

    Genel Bakış sayfasını gösteren ekran görüntüsü.

  4. Uç Nokta ve Yönetici oturum açma bilgileri olarak gösterilen değerleri kopyalayın.

    Genel Bakış sayfasında Uç Nokta ve Yönetici oturum açma değerlerini gösteren ekran görüntüsü.

  5. Yönetici kimlik doğrulaması parolasını unutursanız Parolayı sıfırla düğmesini kullanarak parolayı sıfırlayın .

    Genel Bakış sayfasındaki Parolayı sıfırla düğmesini gösteren ekran görüntüsü.

1. Adım: Bağlanma ve veri ekleme

Bağlanıp CREATE TABLE ve INSERT INTO SQL deyimlerini kullanarak verileri yüklemek için aşağıdaki kodu kullanın. Kod şu yöntemlerle NpgsqlCommand sınıfını kullanır:

Önemli

Host, DBName, User ve Password parametrelerini, sunucuyu ve veritabanını oluştururken belirttiğiniz değerlerle değiştirin.

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

Sorun mu yaşıyorsunuz? Bize bildirin.

2. Adım: Verileri okuma

Bağlanmak ve SELECT SQL deyimi kullanarak verileri okumak için aşağıdaki kodu kullanın. Kod şu yöntemlerle NpgsqlCommand sınıfını kullanır:

Önemli

Host, DBName, User ve Password parametrelerini, sunucuyu ve veritabanını oluştururken belirttiğiniz değerlerle değiştirin.

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

Sorun mu yaşıyorsunuz? Bize bildirin.

3. Adım: Verileri güncelleştirme

Veritabanına bağlanmak ve update SQL deyimini kullanarak verileri güncelleştirmek için aşağıdaki kodu kullanın. Kod aşağıdaki yöntemlerle sınıfını kullanır NpgsqlCommand :

Önemli

Host, DBName, User ve Password parametrelerini, sunucuyu ve veritabanını oluştururken belirttiğiniz değerlerle değiştirin.

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


Sorun mu yaşıyorsunuz? Bize bildirin.

4. Adım: Verileri silme

Veritabanına bağlanmak ve DELETE SQL deyimini kullanarak verileri silmek için aşağıdaki kodu kullanın.

Kod, PostgreSQL için Azure Veri Tabanı esnek sunucu veritabanına bağlantı kurmak için NpgsqlCommand yöntemiyle sınıfını kullanır. Ardından kod CreateCommand() yöntemini kullanır, özelliğini ayarlar CommandText ve ExecuteNonQuery() yöntemini çağırarak veritabanı komutlarını çalıştırır.

Önemli

Host, DBName, User ve Password parametrelerini, sunucuyu ve veritabanını oluştururken belirttiğiniz değerlerle değiştirin.

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

Kaynakları temizle

Bu hızlı başlangıç sırasında kullanılan tüm kaynakları temizlemek için aşağıdaki komutu kullanarak kaynak grubunu silin:

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