Quickstart: استخدم .NET (C#) للاتصال والاستعلام عن البيانات في قاعدة بيانات Azure لـ PostgreSQL مرن سيرفر

يوضح هذا التشغيل السريع كيفية الاتصال بخادم مرن قاعدة بيانات Azure لـ PostgreSQL باستخدام تطبيق C#. توضح طريقة استخدام عبارات SQL الاستعلام عن البيانات وإدراجها وتحديثها وحذفها في قاعدة البيانات. تفترض الخطوات الواردة في هذه المقالة أنك على دراية بالتطوير باستخدام C#، وأنك جديد في العمل مع قاعدة بيانات Azure لـ PostgreSQL.

Prerequisites

للتشغيل السريع، عليك:

الحصول على معلومات الاتصال

احصل على معلومات الاتصال المطلوبة للاتصال بالخادم المرن قاعدة بيانات Azure لـ PostgreSQL. تحتاج إلى اسم الخادم المؤهل بالكامل وبيانات اعتماد المصادقة.

استخدم مدخل Microsoft Azure:

  1. من القائمة اليسرى في مدخل Azure، حدد All resources، ثم ابحث عن الخادم الذي أنشأته.

  2. حدد اسم الخادم.

  3. في قائمة الموارد، حدد Overview.

    لقطة شاشة تعرض صفحة نظرة عامة.

  4. انسخ القيم المعروضة كنقطة نهاية وتسجيل دخول المسؤول.

    لقطة شاشة تعرض قيم نقطة النهاية وتسجيل دخول المسؤول في صفحة نظرة عامة.

  5. إذا نسيت كلمة المرور لمصادقة المسؤول، فعد تعيينها باستخدام الزر إعادة تعيين كلمة المرور .

    لقطة شاشة تعرض زر إعادة تعيين كلمة المرور في صفحة نظرة عامة.

الخطوة 1: الاتصال بالبيانات وإدراجها

استخدم التعليمات البرمجية التالية للاتصال وتحميل البيانات باستخدام عبارات CREATE TABLE وINSERT INTO SQL. تستخدم التعليمات البرمجية فئة NpgsqlCommand مع هذه الطرق:

Important

استبدال معلمات المضيف وDBName والمستخدم وكلمة المرور بالقيم التي قمت بتحديدها عند إنشاء الخادم وقاعدة البيانات.

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

هل تواجه أي مشاكل؟ أبلغنا بها.

الخطوة 2: قراءة البيانات

استخدم التعليمات البرمجية التالية للاتصال وقراءة البيانات باستخدام عبارة الـ SQL: SELECT. تستخدم التعليمات البرمجية فئة NpgsqlCommand مع هذه الطرق:

Important

استبدال معلمات المضيف وDBName والمستخدم وكلمة المرور بالقيم التي قمت بتحديدها عند إنشاء الخادم وقاعدة البيانات.

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

هل تواجه أي مشاكل؟ أبلغنا بها.

الخطوة الثالثة: تحديث البيانات

استخدم التعليمات البرمجية التالية للاتصال بقاعدة البيانات وتحديث البيانات باستخدام عبارة UPDATE SQL. تستخدم التعليمات البرمجية NpgsqlCommand الفئة بالأساليب التالية:

Important

استبدال معلمات المضيف وDBName والمستخدم وكلمة المرور بالقيم التي قمت بتحديدها عند إنشاء الخادم وقاعدة البيانات.

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


هل تواجه أي مشاكل؟ أبلغنا بها.

الخطوة الرابعة: حذف البيانات

استخدم التعليمات البرمجية التالية للاتصال بقاعدة البيانات وحذف البيانات باستخدام عبارة DELETE SQL.

تستخدم التعليمات البرمجية NpgsqlCommand الفئة مع أسلوب Open() لإنشاء اتصال بقاعدة بيانات الخادم المرنة قاعدة بيانات Azure لـ PostgreSQL. ثم، تستخدم التعليمات البرمجية أسلوب CreateCommand() ، وتعين CommandText الخاصية ، وتستدعي الأسلوب ExecuteNonQuery() لتشغيل أوامر قاعدة البيانات.

Important

استبدال معلمات المضيف وDBName والمستخدم وكلمة المرور بالقيم التي قمت بتحديدها عند إنشاء الخادم وقاعدة البيانات.

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

تنظيف الموارد

لتنظيف كافة الموارد المستخدمة أثناء هذا التشغيل السريع، احذف مجموعة الموارد باستخدام الأمر التالي:

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