مشاركة عبر


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

ينطبق على: قاعدة بيانات Azure ل PostgreSQL - خادم مرن

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

المتطلبات الأساسية

ستتعرف في هذا البدء السريع على:

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

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

استخدام المدخل الخاص بـ Microsoft Azure:

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

  2. انقر فوق اسم الخادم.

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

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

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

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

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

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

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

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

هام

استبدال معلمات المضيف و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. تستخدم التعليمات البرمجية فئة NpgsqlCommand مع الأسلوب:

هام

استبدال معلمات المضيف و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();
        }
    }
}

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

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

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

هام

استبدال معلمات المضيف و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();
        }
    }
}


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

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

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

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

هام

استبدال معلمات المضيف و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