إدراج، تحديث، حذف: اتصال قاعدة بيانات ASP.NET

⚡ ملخص ذكي

تتصل ASP.NET بقواعد البيانات مثل SQL Server و Oracle من خلال ADO.NET، باستخدام فئات SqlConnection و SqlCommand و SqlDataReader و SqlDataAdapter لفتح اتصال وتشغيل عمليات التحديد والإدراج والتحديث والحذف على السجلات المخزنة.

  • ؟؟؟؟ الاتصال: يقوم SqlConnection بفتح رابط إلى قاعدة البيانات باستخدام سلسلة اتصال تحتوي على مصدر البيانات والفهرس وبيانات الاعتماد.
  • ؟؟؟؟ قراءة السجلات: يقوم الأمر SqlCommand مع ExecuteReader و SqlDataReader بالتكرار عبر الصفوف التي تم إرجاعها بواسطة عبارة SELECT.
  • ➕ إدراج وتحديث: يقوم SqlDataAdapter مع ExecuteNonQuery بتشغيل عبارات INSERT و UPDATE لتغيير البيانات المخزنة.
  • 🗑️ حذف: تؤدي عبارة DELETE التي يتم تنفيذها من خلال ExecuteNonQuery إلى إزالة صف معين من الجدول.
  • 🔗 ربط عناصر التحكم: يربط مصدر البيانات القائمةBox، وDropDownList، وعناصر تحكم مماثلة مباشرة إلى حقول الجدول.
  • 🔐 ابق آمنًا: تضمن الاستعلامات ذات المعلمات وإغلاق كل اتصال سلامة وموثوقية كود قاعدة البيانات.

إدراج وتحديث وحذف قاعدة البيانات في ASP.NET Operaستعقد

يُعدّ الوصول إلى البيانات من قاعدة البيانات جانبًا مهمًا في أي لغة برمجة. ومن الضروري أن تتمتع أي لغة برمجة بالقدرة على التعامل مع قواعد البيانات.

تتمتع ASP.NET بالقدرة على العمل مع أنواع مختلفة من قواعد البيانات. ويمكنها العمل مع قواعد البيانات الأكثر شيوعًا مثل: Oracle و Microsoft SQL الخادم.

كما أن لديها القدرة على العمل مع أشكال جديدة من قواعد البيانات مثل MongoDB و MySQL.

أساسيات الاتصال بقواعد البيانات

تتمتع ASP.NET بالقدرة على العمل مع غالبية قواعد البيانات، وأكثرها شيوعًا هي Oracle و Microsoft SQL Server. ولكن مع كل قاعدة بيانات، يكون المنطق الكامن وراء العمل معها جميعًا هو نفسه في الغالب.

في أمثلةنا، سننظر في العمل مع Microsoft SQL Server بمثابة قاعدة البيانات لدينا. لأغراض التعلم، يمكن للمرء تنزيل واستخدام Microsoft SQL Server إصدار Express. هذا برنامج قواعد بيانات مجاني مقدم من Microsoft.

أثناء العمل مع قواعد البيانات، توجد مفاهيم مشتركة بين جميع قواعد البيانات:

  1. الاتصال - للعمل مع البيانات الموجودة في قاعدة البيانات، الخطوة الأولى الواضحة هي الاتصال. يتكون الاتصال بقاعدة البيانات عادةً من المعلمات المذكورة أدناه.
    1. اسم قاعدة البيانات أو مصدر البيانات - المعلمة المهمة الأولى هي اسم قاعدة البيانات. يمكن أن يعمل كل اتصال مع قاعدة بيانات واحدة فقط في كل مرة.
    2. أوراق اعتماد – الجانب المهم التالي هو اسم المستخدم وكلمة المرور. يُستخدم هذان العنصران لإنشاء اتصال بقاعدة البيانات.
    3. معلمات اختيارية – يمكنك تحديد معلمات اختيارية لكيفية تعامل .NET مع الاتصال بقاعدة البيانات. على سبيل المثال، يمكنك تحديد مدة بقاء الاتصال نشطًا.
  2. اختيار البيانات من قاعدة البيانات بمجرد إنشاء الاتصال، يتم جلب البيانات من قاعدة البيانات. يتميز ASP.NET بقدرته على تنفيذ أمر SQL SELECT على قاعدة البيانات. يمكن استخدام عبارة SQL لجلب البيانات من جدول محدد في قاعدة البيانات.
  3. إدخال البيانات في قاعدة البيانات – تُستخدم ASP.NET لإدراج السجلات في قاعدة البيانات. يتم تحديد قيم كل صف مطلوب إدراجه في قاعدة البيانات في ASP.NET.
  4. تحديث البيانات في قاعدة البيانات – يمكن أيضًا استخدام ASP.NET لتحديث السجلات الموجودة في قاعدة البيانات. ويمكن تحديد قيم جديدة في ASP.NET لكل صف يحتاج إلى التحديث في قاعدة البيانات.
  5. حذف البيانات من قاعدة البيانات – يمكن استخدام ASP.NET أيضًا لحذف السجلات من قاعدة البيانات. يُكتب الكود لحذف صف معين من قاعدة البيانات.

والآن بعد أن رأينا الجزء النظري من كل عملية، دعونا نرى كيفية تنفيذ عمليات قاعدة البيانات في ASP.NET.

اتصالات قاعدة بيانات ASP.NET

لنلقِ نظرة الآن على الكود اللازم لإنشاء اتصال بقاعدة بيانات. في مثالنا، سنتصل بقاعدة بيانات اسمها Demodb. بيانات الاعتماد المستخدمة للاتصال بقاعدة البيانات موضحة أدناه:

  • اسم المستخدم – سا
  • كلمة المرور – العرض التوضيحي 123

لنعمل الآن على تطبيق الويب الحالي الذي أنشأناه في الأقسام السابقة.

  • ابدأ بإضافة عمليات قاعدة البيانات إليها.
  • يتناول مثالنا إنشاء اتصال بسيط. يتم إنشاء هذا الاتصال بقاعدة بيانات Demodb. ويتم ذلك عند تشغيل الصفحة لأول مرة.
  • عند إنشاء الاتصال، سيتم إرسال رسالة إلى المستخدم. ستشير الرسالة إلى أنه تم إنشاء الاتصال.

لنتبع الخطوات المذكورة أدناه لتحقيق ذلك.

الخطوة 1) دعنا نتأكد أولاً من أن تطبيق الويب الخاص بك (DemoApplication) مفتوح في Visual Studio. Doubleانقر على ملف demo.aspx.cs لإدخال رمز الاتصال بقاعدة البيانات.

اتصالات قاعدة بيانات ASP.NET

الخطوة 2) أضف الكود أدناه الذي سيتم استخدامه لإنشاء اتصال بقاعدة البيانات.

اتصالات قاعدة بيانات ASP.NET

namespace DemoApplication
{
    public partial class Demo : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string connectionString;
            SqlConnection cnn;

            connectionString = @"Data Source=WIN-50GP30FGO75;Initial Catalog=Demodb;User ID=sa;Password=demo123";

            cnn = new SqlConnection(connectionString);

            cnn.Open();

            Response.Write("Connection Made");
            cnn.Close();
        }
    }
}

Code تفسير:-

  1. الخطوة الأولى هي إنشاء المتغيرات. سيتم استخدامها لإنشاء سلسلة الاتصال والاتصال بقاعدة بيانات SQL Server.
  2. الخطوة التالية هي إنشاء سلسلة الاتصال. تتكون سلسلة الاتصال من الأجزاء التالية:
    • مصدر البيانات – هذا هو اسم الخادم الذي توجد عليه قاعدة البيانات. في حالتنا، توجد على جهاز يُسمى WIN-50GP30FGO75.
    • يُستخدم الكتالوج الأولي لتحديد اسم قاعدة البيانات.
    • اسم المستخدم وكلمة المرور هما بيانات الاعتماد المطلوبة للاتصال بقاعدة البيانات.
  3. بعد ذلك، نقوم بتعيين سلسلة الاتصال للمتغير cnn.
    • المتغير cnn من النوع SqlConnection. يتم استخدامه لإنشاء اتصال بقاعدة البيانات.
    • SqlConnection هي فئة في ASP.NET تُستخدم لإنشاء اتصال بقاعدة بيانات.
    • لاستخدام هذه الفئة، يجب أولاً إنشاء كائن منها. لذا، سنقوم هنا بإنشاء متغير يُسمى cnn وهو من نوع SqlConnection.
  4. بعد ذلك، نستخدم دالة Open الخاصة بالمتغير cnn لفتح اتصال بقاعدة البيانات. نعرض رسالة للمستخدم تفيد بإنشاء الاتصال، وذلك باستخدام دالة Response.Write. ثم نغلق الاتصال بقاعدة البيانات.

عند تعيين الكود المذكور أعلاه وتنفيذ المشروع باستخدام البصرية ستوديوستظهر لك النتائج الموضحة أدناه. بمجرد ظهور النموذج، انقر على زر "اتصال".

انتاج:-

اتصالات قاعدة بيانات ASP.NET

ستظهر رسالة الإخراج المعروضة في المتصفح أن الاتصال بقاعدة البيانات قد تم.

ASP.NET قراءة قاعدة البيانات باستخدام SqlDataReader

لعرض البيانات التي تم الوصول إليها باستخدام ASP.NET، لنفترض وجود العناصر التالية في قاعدة البيانات الخاصة بنا.

  1. جدول يسمى demotb. سيتم استخدام هذا الجدول لتخزين معرفات وأسماء الدروس التعليمية المختلفة.
  2. سيحتوي الجدول على عمودين، أحدهما يسمى TutorialID والآخر يسمى TutorialName.
  3. في الوقت الحالي، سيحتوي الجدول على صفين كما هو موضح أدناه.
معرف البرنامج التعليمي اسم البرنامج التعليمي
1 C#
2 ASP.Net

لنُغيّر الكود بحيث يُمكننا الاستعلام عن هذه البيانات وعرض المعلومات على صفحة الويب نفسها. لاحظ أن الكود المُدخل هو استكمال للكود المكتوب لوحدة اتصال البيانات.

الخطوة 1) لنقم بتقسيم الكود إلى جزأين:

  • الجزء الأول سيكون عبارة عن إنشاء عبارة SELECT الخاصة بنا. سيتم استخدامها لقراءة البيانات من قاعدة البيانات.
  • سنقوم بعد ذلك بتنفيذ عبارة SELECT على قاعدة البيانات. سيؤدي هذا إلى جلب جميع صفوف الجدول وفقًا لذلك.

ASP.NET قراءة قاعدة البيانات باستخدام SqlDataReader

Code تفسير:-

  1. الخطوة الأولى هي إنشاء المتغيرات التالية:
    • SqlCommand – SqlCommand هي فئة مُعرّفة في لغة C#. تُستخدم هذه الفئة لإجراء عمليات القراءة والكتابة في قاعدة البيانات.
    • يتم استخدام كائن DataReader للحصول على كافة البيانات المحددة بواسطة استعلام SQL. يمكننا بعد ذلك قراءة جميع صفوف الجدول واحدًا تلو الآخر باستخدام قارئ البيانات.
    • ثم نُعرّف متغيرين نصيين. الأول هو sql لتخزين سلسلة أوامر SQL الخاصة بنا. والثاني هو Output الذي سيحتوي على جميع قيم الجدول.
  2. الخطوة التالية هي تحديد عبارة SQL. في حالتنا، هي "Select TutorialID, TutorialName from demotb". سيؤدي هذا إلى جلب جميع الصفوف من جدول demotb.
  3. بعد ذلك، نقوم بإنشاء كائن الأمر الذي يتم استخدامه لتنفيذ عبارة SQL على قاعدة البيانات. في أمر SQL، يجب عليك تمرير كائن الاتصال وسلسلة SQL.
  4. بعد ذلك، نقوم بتنفيذ أمر قارئ البيانات، والذي سيجلب جميع الصفوف من جدول demotb.
  5. الآن وقد أصبح لدينا جميع صفوف الجدول، نحتاج إلى آلية للوصول إلى الصفوف واحداً تلو الآخر.
    • لهذا الغرض، نستخدم عبارة while للوصول إلى الصفوف من قارئ البيانات واحداً تلو الآخر.
    • ثم نستخدم طريقة GetValue للحصول على قيمة TutorialID و TutorialName.

الخطوة 2) في الخطوة الأخيرة، نعرض الناتج للمستخدم. ثم نغلق جميع الكائنات المتعلقة بعملية قاعدة البيانات.

ASP.NET قراءة قاعدة البيانات باستخدام SqlDataReader

namespace DemoApplication
{
    public partial class Demo : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            SqlCommand command;
            SqlDataReader dataReader;
            String sql, Output = " ";
            sql = "Select TutorialID,TutorialName from demotb";

            command = new SqlCommand(sql, cnn);

            dataReader = command.ExecuteReader();
            while (dataReader.Read())
            {
                Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>";
            }

            Response.Write(Output);
            dataReader.Close();
            command.Dispose();
            cnn.Close();
        }
    }
}

Code تفسير:-

  1. نواصل تنفيذ الكود الخاص بنا بعرض قيمة متغير الإخراج. ويتم ذلك باستخدام دالة Response.Write.
  2. وأخيرًا، نقوم بإغلاق جميع الكائنات المتعلقة بعملية قاعدة البيانات. تذكر، هذه ممارسة جيدة دائمًا.

عند ضبط الكود أعلاه وتشغيل المشروع باستخدام Visual Studio، ستحصل على المخرجات التالية.

انتاج:-

ASP.NET قراءة قاعدة البيانات باستخدام SqlDataReader

من خلال الإخراج، يمكنك أن ترى بوضوح أن البرنامج كان قادرًا على الحصول على القيم من قاعدة البيانات. ثم يتم عرض البيانات في المتصفح للمستخدم.

إدراج سجل قاعدة البيانات باستخدام InsertCommand

تمامًا كما هو الحال مع الوصول إلى البيانات، يتمتع ASP.NET بالقدرة على إدراج السجلات في قاعدة البيانات أيضًا. لنأخذ بنية الجدول نفسها المستخدمة لإدراج السجلات.

معرف البرنامج التعليمي اسم البرنامج التعليمي
1 C#
2 ASP.Net

لنقم بتغيير الكود في النموذج الخاص بنا حتى نتمكن من إدراج الصف التالي في الجدول:

معرف البرنامج التعليمي اسم البرنامج التعليمي
3 VB.Net

الخطوة 1) كخطوة أولى، دعونا نضيف الكود التالي إلى برنامجنا. سيتم استخدام مقتطف الكود أدناه لإدراج سجل في قاعدة البيانات الخاصة بنا.

إدراج سجل قاعدة البيانات باستخدام InsertCommand

namespace DemoApplication
{
    public partial class Demo : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            SqlCommand command;
            SqlDataAdapter adapter = new SqlDataAdapter();
            String sql = "";

            sql = "Insert into demotb(TutorialID,TutorialName) values(3,'VB.Net')";

            command = new SqlCommand(sql, cnn);
            adapter.InsertCommand = new SqlCommand(sql, cnn);
            adapter.InsertCommand.ExecuteNonQuery();

            command.Dispose();
            cnn.Close();
        }
    }
}

Code تفسير:-

  1. الخطوة الأولى هي إنشاء المتغيرات التالية:
    • SqlCommand – يُستخدم نوع البيانات هذا لتعريف الكائنات التي تُنفّذ عمليات SQL على قاعدة البيانات. سيحتوي هذا الكائن على أمر SQL الذي سيتم تشغيله على قاعدة بيانات SQL Server الخاصة بنا.
    • يُستخدم كائن DataAdapter لتنفيذ أوامر SQL الخاصة بالإدراج والحذف والتحديث.
    • ثم نقوم بتعريف متغير سلسلة نصية، وهو sql، لحفظ سلسلة أوامر SQL الخاصة بنا.
  2. الخطوة التالية هي تحديد عبارة SQL. في حالتنا، نقوم بإصدار عبارة إدراج. سيؤدي هذا إلى إدراج سجل يحتوي على TutorialID=3 و TutorialName=VB.Net.
  3. بعد ذلك، نقوم بإنشاء كائن الأمر الذي يتم استخدامه لتنفيذ عبارة SQL على قاعدة البيانات. في أمر SQL، يجب عليك تمرير كائن الاتصال وسلسلة SQL.
  4. في أمر محول البيانات الخاص بنا:
    • قم بربط أمر إدراج SQL بالمحول.
    • ثم قم بتنفيذ دالة ExecuteNonQuery. تُستخدم هذه الدالة لتنفيذ عبارة الإدراج في قاعدة البيانات.
    • تُستخدم طريقة ExecuteNonQuery في C# إصدار أي بيانات DML (عملية الإدراج والحذف والتحديث) على قاعدة البيانات.
  5. وأخيرًا، نقوم بإغلاق جميع الكائنات المتعلقة بعملية قاعدة البيانات. تذكر، هذه ممارسة جيدة دائمًا.

الخطوة 2) كخطوة ثانية، سنضيف نفس الكود الموجود في قسم الوصول إلى البيانات. هذا لعرض بيانات الجدول الأخيرة في المتصفح. ولتحقيق ذلك، سنضيف الكود التالي إلى ملف demo.aspx.cs.

إدراج سجل قاعدة البيانات باستخدام InsertCommand

namespace DemoApplication
{
    public partial class Demo : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            SqlCommand command;
            SqlDataReader dataReader;
            String sql, Output = " ";
            sql = "Select TutorialID,TutorialName from demotb";

            command = new SqlCommand(sql, cnn);

            dataReader = command.ExecuteReader();
            while (dataReader.Read())
            {
                Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>";
            }

            Response.Write(Output);
            dataReader.Close();
            command.Dispose();
            cnn.Close();
        }
    }
}

عند تعيين الكود أعلاه وتنفيذ المشروع في Visual Studio، ستحصل على المخرجات التالية.

انتاج:-

إدراج سجل قاعدة البيانات باستخدام InsertCommand

سترى في نافذة المتصفح أنه تم إدراج الصف بنجاح في قاعدة البيانات.

تحديث سجل قاعدة البيانات باستخدام UpdateCommand

تتيح ASP.NET إمكانية تحديث السجلات الموجودة في قاعدة البيانات. لنأخذ بنية الجدول نفسها التي استُخدمت في المثال السابق لإضافة سجلات.

معرف البرنامج التعليمي اسم البرنامج التعليمي
1 C#
2 ASP.Net
3 VB.Net

لنُغيّر الكود في النموذج بحيث نتمكن من تحديث الصف التالي. القيمة القديمة للصف هي TutorialID بقيمة 3 و TutorialName بقيمة VB.Net، وسنُحدّثها إلى "VB.Net Complete"، بينما ستبقى قيمة TutorialID كما هي.

الصف القديم

معرف البرنامج التعليمي اسم البرنامج التعليمي
3 VB.Net

صف جديد

معرف البرنامج التعليمي اسم البرنامج التعليمي
3 VB.Net كامل

الخطوة 1) كخطوة أولى، دعونا نضيف الكود التالي إلى برنامجنا. سيتم استخدام مقتطف الكود أدناه لتحديث سجل موجود في قاعدة البيانات.

تحديث سجل قاعدة البيانات باستخدام UpdateCommand

namespace DemoApplication
{
    public partial class Demo : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            SqlCommand command;
            SqlDataAdapter adapter = new SqlDataAdapter();
            String sql = "";

            sql = "Update demotb set TutorialName='VB.Net Complete' where TutorialID=3";

            command = new SqlCommand(sql, cnn);
            adapter.InsertCommand = new SqlCommand(sql, cnn);
            adapter.InsertCommand.ExecuteNonQuery();

            command.Dispose();
            cnn.Close();
        }
    }
}

Code تفسير:-

  1. الخطوة الأولى هي إنشاء المتغيرات التالية:
    • SqlCommand – يُستخدم نوع البيانات هذا لتعريف كائنات لتنفيذ عمليات SQL على قاعدة البيانات. سيحتوي هذا الكائن على أمر SQL الذي سيتم تنفيذه على قاعدة بيانات SQL Server الخاصة بنا.
    • يُستخدم كائن DataAdapter لتنفيذ أوامر SQL الخاصة بالإدراج والحذف والتحديث.
    • ثم نقوم بتعريف متغير سلسلة نصية، وهو sql، لحفظ سلسلة أوامر SQL الخاصة بنا.
  2. الخطوة التالية هي تحديد عبارة SQL. في حالتنا، سنصدر عبارة تحديث. سيؤدي هذا إلى تحديث TutorialName إلى "VB.Net Complete". سيبقى TutorialID دون تغيير، وستكون قيمته 3.
  3. بعد ذلك، نقوم بإنشاء كائن الأمر. يُستخدم هذا الكائن لتنفيذ عبارة SQL على قاعدة البيانات. في أمر SQL، يتم تمرير كائن الاتصال وسلسلة SQL.
  4. في أمر محول البيانات، نربط أمر SQL بالمحول. ثم نُصدر دالة ExecuteNonQuery. تُستخدم هذه الدالة لتنفيذ عبارة التحديث على قاعدة البيانات.
  5. وأخيرًا، نقوم بإغلاق جميع الكائنات المتعلقة بعملية قاعدة البيانات. تذكر، هذه ممارسة جيدة دائمًا.

الخطوة 2) كخطوة ثانية، سنضيف نفس الكود المستخدم في قسم الوصول إلى البيانات. هذا لعرض بيانات الجدول الأخيرة في المتصفح. ولتحقيق ذلك، سنضيف الكود التالي.

تحديث سجل قاعدة البيانات باستخدام UpdateCommand

namespace DemoApplication
{
    public partial class Demo : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            SqlCommand command;
            SqlDataReader dataReader;
            String sql, Output = " ";
            sql = "Select TutorialID,TutorialName from demotb";

            command = new SqlCommand(sql, cnn);

            dataReader = command.ExecuteReader();
            while (dataReader.Read())
            {
                Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>";
            }

            Response.Write(Output);
            dataReader.Close();
            command.Dispose();
            cnn.Close();
        }
    }
}

عند تعيين الكود أعلاه وتنفيذ المشروع باستخدام Visual Studio، ستحصل على المخرجات التالية.

انتاج:-

تحديث سجل قاعدة البيانات باستخدام UpdateCommand

في نافذة المتصفح، سترى أنه تم تحديث الصف بنجاح في قاعدة البيانات.

حذف سجل قاعدة البيانات باستخدام RemoveCommand

يمكن لـ ASP.NET حذف السجلات الموجودة من قاعدة البيانات. لنأخذ نفس بنية الجدول التي استُخدمت سابقًا في المثال لحذف السجلات.

معرف البرنامج التعليمي اسم البرنامج التعليمي
1 C#
2 ASP.Net
3 VB.Net كامل

لنقم بتغيير الكود في النموذج الخاص بنا حتى نتمكن من حذف الصف التالي:

معرف البرنامج التعليمي اسم البرنامج التعليمي
3 VB.Net كامل

الخطوة 1) كخطوة أولى، دعونا نضيف الكود التالي إلى برنامجنا. سيتم استخدام مقتطف الكود أدناه لحذف سجل موجود في قاعدة البيانات.

حذف سجل قاعدة البيانات باستخدام RemoveCommand

namespace DemoApplication
{
    public partial class Demo : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            SqlCommand command;
            SqlDataAdapter adapter = new SqlDataAdapter();
            String sql = "";

            sql = "Delete demotb where TutorialID=3";

            command = new SqlCommand(sql, cnn);
            adapter.DeleteCommand = new SqlCommand(sql, cnn);
            adapter.DeleteCommand.ExecuteNonQuery();

            command.Dispose();
            cnn.Close();
        }
    }
}

Code تفسير:-

  1. الفرق الرئيسي في هذا الكود هو أننا نقوم الآن بتنفيذ أمر حذف SQL. يُستخدم أمر الحذف لحذف الصف في جدول demotb الذي يحتوي على قيمة TutorialID تساوي 3.
  2. في أمر محول البيانات، نربط أمر حذف SQL بالمحول. كما نستخدم دالة ExecuteNonQuery لتنفيذ أمر الحذف على قاعدة البيانات.

الخطوة 2) كخطوة ثانية، سنضيف نفس الكود المستخدم في قسم الوصول إلى البيانات. هذا لعرض بيانات الجدول الأخيرة في المتصفح. ولتحقيق ذلك، سنضيف الكود التالي.

حذف سجل قاعدة البيانات باستخدام RemoveCommand

namespace DemoApplication
{
    public partial class Demo : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            SqlCommand command;
            SqlDataReader dataReader;
            String sql, Output = " ";
            sql = "Select TutorialID,TutorialName from demotb";

            command = new SqlCommand(sql, cnn);

            dataReader = command.ExecuteReader();
            while (dataReader.Read())
            {
                Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>";
            }

            Response.Write(Output);
            dataReader.Close();
            command.Dispose();
            cnn.Close();
        }
    }
}

عند تعيين الكود أعلاه وتنفيذ المشروع باستخدام Visual Studio، ستحصل على المخرجات التالية.

انتاج:-

حذف سجل قاعدة البيانات باستخدام RemoveCommand

ربط عناصر تحكم ASP.NET بالبيانات

لقد رأينا كيف يمكننا استخدام أوامر ASP.NET مثل SqlCommand و SqlDataReader لجلب البيانات من قاعدة البيانات. كما رأينا كيف يمكننا قراءة كل صف من الجدول وعرضه على صفحة الويب.

تتوفر طرق لربط عناصر التحكم مباشرةً بحقول مختلفة في الجدول. حاليًا، لا يمكن ربط سوى عناصر التحكم التالية بتطبيق ASP.NET:

  1. تحققBoxقائمة
  2. قائمة أزرار الراديو
  3. قائمة منسدلة
  4. قائمةBox

لنلقِ نظرة على مثال لكيفية استخدام ربط عناصر التحكم في ASP.NET. سنستخدم هنا قائمة (List).Box مثال. لنفترض أن لدينا البيانات التالية في قاعدة بياناتنا.

معرف البرنامج التعليمي اسم البرنامج التعليمي
1 C#
2 ASP.Net
3 VB.Net كامل

لنستخدم القائمةBox تحكم في النظام وشاهد كيف يمكنه استخراج البيانات تلقائيًا من جدول demotb الخاص بنا. لنتبع الخطوات المذكورة أدناه لتحقيق ذلك.

الخطوة 1) أنشئ نموذج الويب الأساسي. من صندوق الأدوات في Visual Studio، اسحب وأفلت مكونين - التسميات والقوائمBoxثم قم بتنفيذ الخطوات الفرعية التالية:

  1. ضع قيمة النص للعلامة الأولى كـ TutorialID.
  2. ضع قيمة النص للتسمية الثانية كـ TutorialName.

فيما يلي الشكل الذي سيبدو عليه النموذج بعد تنفيذ الخطوات المذكورة أعلاه.

ربط عناصر تحكم ASP.NET بالبيانات

الخطوة 2) الخطوة التالية هي البدء في ربط كل قائمةBox إلى جدول قاعدة البيانات.

  1. أولاً، انقر على القائمةBox بالنسبة إلى TutorialID. سيؤدي هذا إلى ظهور مربع حوار آخر بجانب عنصر التحكم.
  2. من مربع الحوار، انقر على خيار اختيار مصدر البيانات.

ربط عناصر تحكم ASP.NET بالبيانات

الخطوة 3) ستظهر لك بعد ذلك نافذة حوار. يمكنك استخدامها لإنشاء مصدر بيانات جديد. يُمثل مصدر البيانات اتصالاً بقاعدة البيانات. اختر خيار "مصدر بيانات جديد".

ربط عناصر تحكم ASP.NET بالبيانات

الخطوة 4) سيتم مطالبتك بالشاشة أدناه بعد اختيار مصدر البيانات الجديد في الخطوة الأخيرة. نحن هنا بحاجة إلى ذكر نوع مصدر البيانات الذي نريد إنشاءه.

  1. اختر خيار قاعدة البيانات للعمل مع قاعدة بيانات SQL Server.
  2. الآن نحن بحاجة إلى إعطاء اسم لمصدر البيانات لدينا. نحن هنا نعطيها اسم DemoDataSource.
  3. وأخيراً، نضغط على زر "موافق" للانتقال إلى الشاشة التالية.

ربط عناصر تحكم ASP.NET بالبيانات

الخطوة 5) الآن نحتاج إلى إنشاء اتصال بقاعدة البيانات الخاصة بنا. في الشاشة التالية، انقر على زر "اتصال جديد".

ربط عناصر تحكم ASP.NET بالبيانات

الخطوة 6) بعد ذلك، تحتاج إلى إضافة بيانات الاعتماد للاتصال بقاعدة البيانات.

  1. اختر اسم الخادم الذي يوجد عليه خادم SQL.
  2. أدخل اسم المستخدم وكلمة المرور للاتصال بقاعدة البيانات.
  3. اختر قاعدة البيانات باسم demotb.
  4. انقر على زر موافق.

ربط عناصر تحكم ASP.NET بالبيانات

الخطوة 7) في الشاشة التالية، ستتمكن من رؤية جدول demotb. ما عليك سوى النقر على زر "التالي" لقبول الإعدادات الافتراضية.

ربط عناصر تحكم ASP.NET بالبيانات

الخطوة 8) ستتمكن الآن من اختبار الاتصال على الشاشة التالية.

  1. انقر على زر "اختبار الاستعلام" لمعرفة ما إذا كان بإمكانك الحصول على القيم من الجدول.
  2. انقر فوق الزر "إنهاء" لإكمال المعالج.

ربط عناصر تحكم ASP.NET بالبيانات

الخطوة 9) الآن، في الشاشة الأخيرة، يمكنك النقر على زر "موافق". سيؤدي هذا إلى ربط قائمة معرفات البرنامج التعليمي.Box إلى اسم حقل TutorialID في جدول demotb.

ربط عناصر تحكم ASP.NET بالبيانات

الخطوة 10) حان الآن وقت ربط قائمة أسماء الدروس التعليميةBox إلى حقل TutorialName.

  1. أولاً، انقر على قائمة أسماء الدروس التعليميةBox.
  2. بعد ذلك، اختر من "مصدر البيانات" في مربع الحوار الذي يظهر بجانب القائمة.Box.

ربط عناصر تحكم ASP.NET بالبيانات

الخطوة 11) ستشاهد بالفعل DemoDataSource عند اختيار مصدر البيانات في الشاشة التالية.

  1. اختر مصدر بيانات العرض التوضيحي.
  2. انقر على زر موافق.

ربط عناصر تحكم ASP.NET بالبيانات

إذا تم تنفيذ جميع الخطوات المذكورة أعلاه كما هو موضح، فسوف تحصل على النتيجة المذكورة أدناه.

انتاج:-

ربط عناصر تحكم ASP.NET بالبيانات

من المخرجات، يمكنك أن ترى أن القائمةBoxيعرض كل من TutorialID و TutorialName على التوالي.

الأسئلة الشائعة

نعم. يمكن لمساعدي الذكاء الاصطناعي، مثل GitHub Copilot، إنشاء نماذج أولية لوظائف الإضافة والتحديث والحذف في ADO.NET وشرح كل سطر منها. يُنصح دائمًا بمراجعة استعلام SQL المُنشأ واختباره، لأن الذكاء الاصطناعي قد يُغفل بعض تفاصيل المعاملات أو معالجة الاتصالات.

نعم. يمكنك لصق استثناء ADO.NET أو خطأ SQL في أداة ذكاء اصطناعي والحصول على سبب واضح وحل محتمل. تأكد من صحة الاقتراح على مخطط قاعدة البيانات قبل تطبيقه في بيئة الإنتاج.

استخدم الاستعلامات المُعَلَّمة. أضف القيم باستخدام كائنات SqlParameter بدلاً من دمج المدخلات في سلسلة SQL. هذا يفصل البيانات عن الأوامر ويمنع حقنها، كما يُحسِّن إعادة استخدام خطة الاستعلام.

تُنفّذ الدالة ExecuteNonQuery عمليات الإدراج والتحديث والحذف، وتُعيد الصفوف المتأثرة. تُعيد الدالة ExecuteReader كائن SqlDataReader للقراءة الأمامية فقط لنتائج الاستعلام SELECT. تُعيد الدالة ExecuteScalar قيمةً واحدة، مثل عدد الصفوف، من الصف والعمود الأولين.

يقوم SqlDataReader بمعالجة الصفوف واحدة تلو الأخرى ويتطلب اتصالاً مفتوحاً، مما يجعله سريعاً في القراءة. أما SqlDataAdapter فيقوم بتعبئة DataSet أو DataTable في الذاكرة، كما يقوم بتنفيذ أوامر الإدراج والتحديث والحذف.

قم بتخزينها في قسم connectionStrings من ملف web.config بدلاً من تضمينها مباشرةً في الصفحة. هذا يُركّز الإعدادات، ويُبقي بيانات الاعتماد بعيدة عن شفرة المصدر، ويتيح لك تغييرها دون إعادة تجميع التطبيق.

توفر ADO.NET مع SqlCommand تحكمًا دقيقًا وسرعة عالية للصفحات البسيطة. بينما يقوم Entity Framework بربط الجداول بالكائنات ويقلل من التعليمات البرمجية المتكررة للتطبيقات الأكبر حجمًا. وتعتمد العديد من الفرق على الجمع بين الطريقتين حسب متطلبات الأداء والتعقيد.

تحتفظ الاتصالات المفتوحة بالموارد المجمعة على الخادم. يؤدي استدعاء Close أو Dispose، ويفضل أن يكون ذلك داخل كتلة using، إلى إعادة الاتصال إلى المجمع، ومنع تسرب الموارد، والحفاظ على استجابة التطبيق تحت الضغط.

تلخيص هذه التدوينة بـ: