اتصال قاعدة البيانات بلغة C#: كيفية الاتصال بخادم SQL
⚡ ملخص ذكي
يتناول قسم "اتصال قاعدة البيانات بلغة C#" كيفية الاستعلام عن بيانات SQL Server وإدراجها وتحديثها وحذفها من تطبيقات .NET. Lessتشرح هذه المقالة سلاسل الاتصال، وSqlConnection، وSqlCommand، وعناصر التحكم في ربط البيانات، واستخدام DataGridView.

يعد الوصول إلى البيانات من قاعدة البيانات أحد الجوانب المهمة لأي لغة برمجة. من الضروري أن تتمتع أي لغة برمجة بالقدرة على العمل مع قواعد البيانات. C # لا يختلف.
يمكنه العمل مع أنواع مختلفة من قواعد البيانات. يمكنه العمل مع قواعد البيانات الأكثر شيوعًا مثل Oracle و Microsoft SQL الخادم.
كما يمكنه العمل مع أشكال جديدة من قواعد البيانات مثل MongoDB و MySQL.
أساسيات الاتصال بقاعدة البيانات
يمكن لـ C# و.Net العمل مع غالبية قواعد البيانات، وأكثرها شيوعًا Oracle و Microsoft SQL Server. ولكن مع كل قاعدة بيانات، يكون المنطق الكامن وراء العمل معها جميعًا هو نفسه في الغالب.
في الأمثلة لدينا، سوف ننظر في العمل Microsoft SQL Server بمثابة قاعدة البيانات لدينا. لأغراض التعلم، يمكن للمرء تنزيل واستخدام Microsoft SQL Server اكسبريس الطبعة، وهو برنامج قاعدة بيانات مجاني يقدمه Microsoft.
عند العمل مع قواعد البيانات، فيما يلي المفاهيم المشتركة بين جميع قواعد البيانات.
- الاتصال - للعمل مع البيانات الموجودة في قاعدة البيانات، الخطوة الأولى الواضحة هي الاتصال. يتكون الاتصال بقاعدة البيانات عادةً من المعلمات المذكورة أدناه.
- اسم قاعدة البيانات أو مصدر البيانات - المعلمة المهمة الأولى هي اسم قاعدة البيانات التي يجب إنشاء الاتصال بها. يمكن أن يعمل كل اتصال مع قاعدة بيانات واحدة فقط في كل مرة.
- أوراق اعتماد - الجانب المهم التالي هو اسم المستخدم وكلمة المرور اللذين يجب استخدامهما لتأسيس اتصال بقاعدة البيانات. فهو يضمن أن اسم المستخدم وكلمة المرور لهما الامتيازات اللازمة للاتصال بقاعدة البيانات.
- معلمات اختيارية - بالنسبة لكل نوع قاعدة بيانات، يمكنك تحديد معلمات اختيارية لتوفير مزيد من المعلومات حول كيفية تعامل .net مع الاتصال بقاعدة البيانات. على سبيل المثال، يمكن للمرء تحديد معلمة للمدة التي يجب أن يظل فيها الاتصال نشطًا. إذا لم يتم تنفيذ أي عملية لفترة زمنية محددة، فإن المعلمة ستحدد ما إذا كان يجب إغلاق الاتصال.
- اختيار البيانات من قاعدة البيانات - بمجرد إنشاء الاتصال، الجانب المهم التالي هو جلب البيانات من قاعدة البيانات. يمكن لـ C# تنفيذ أمر تحديد "SQL" على قاعدة البيانات. يمكن استخدام عبارة "SQL" لجلب البيانات من جدول محدد في قاعدة البيانات.
- إدخال البيانات في قاعدة البيانات – يمكن أيضًا استخدام لغة C# لإدراج السجلات في قاعدة البيانات. يمكن تحديد القيم في لغة C# لكل صف يحتاج إلى إدراجه في قاعدة البيانات.
- تحديث البيانات في قاعدة البيانات – يمكن أيضًا استخدام لغة C# لتحديث السجلات الموجودة في قاعدة البيانات. يمكن تحديد قيم جديدة في لغة C# لكل صف يحتاج إلى التحديث في قاعدة البيانات.
- حذف البيانات من قاعدة البيانات – يمكن أيضًا استخدام C# لحذف السجلات في قاعدة البيانات. يمكن تحديد الأوامر لتحديد الصفوف التي يجب حذفها في C#.
حسنًا، الآن بعد أن رأينا نظرية كل عملية، دعنا ننتقل إلى الأقسام الأخرى لنرى كيف يمكننا إجراء عمليات قاعدة البيانات في C#.
أمر SQL في لغة C#
SqlCommand في C# السماح للمستخدم بالاستعلام وإرسال الأوامر إلى قاعدة البيانات. يتم تحديد أمر SQL بواسطة كائن اتصال SQL. يتم استخدام طريقتين، طريقة ExecuteReader لنتائج الاستعلام وExecuteNonQuery لأوامر الإدراج والتحديث والحذف. إنها الطريقة الأفضل للأوامر المختلفة.
كيفية ربط C# بقاعدة البيانات
دعونا الآن نلقي نظرة على الكود الذي يجب الاحتفاظ به في مكانه لإنشاء اتصال بقاعدة البيانات. في مثالنا، سوف نقوم بالاتصال بقاعدة بيانات تحمل اسم Demodb. بيانات الاعتماد المستخدمة للاتصال بقاعدة البيانات مذكورة أدناه
- اسم المستخدم – سا
- كلمة المرور – العرض التوضيحي 123
سوف نرى بسيطة Windows تطبيق النماذج للعمل مع قواعد البيانات. سيكون لدينا زر بسيط يسمى "الاتصال" والذي سيتم استخدامه للاتصال بقاعدة البيانات.
لذلك دعونا نتبع الخطوات التالية لتحقيق ذلك
الخطوة 1) تتضمن الخطوة الأولى إنشاء مشروع جديد في Visual Studio. بعد تشغيل Visual Studio، تحتاج إلى اختيار خيار القائمة New->Project.
الخطوة 2) والخطوة التالية هي اختيار نوع المشروع ك Windows تطبيق النماذج. وهنا، نحتاج أيضًا إلى ذكر اسم مشروعنا وموقعه.
- في مربع حوار المشروع، يمكننا رؤية خيارات مختلفة لإنشاء أنواع مختلفة من المشاريع في Visual Studio. انقر فوق Windows الخيار على الجانب الأيسر.
- عندما نضغط على Windows الخيارات في الخطوة السابقة، سنكون قادرين على رؤية خيار ل Windows تطبيق النماذج. انقر فوق هذا الخيار.
- ثم نعطي اسمًا للتطبيق وهو في حالتنا "DemoApplication". نحتاج أيضًا إلى توفير موقع لتخزين تطبيقنا.
- وأخيرًا، نضغط على زر "موافق" للسماح لبرنامج Visual Studio بإنشاء مشروعنا.
الخطوة 3) الآن قم بإضافة زر من صندوق الأدوات إلى Windows استمارة. ضع خاصية النص الخاصة بالزر على أنها اتصال. هذه هي الطريقة التي سوف تبدو وكأنها
الخطوة 4) الآن انقر نقرًا مزدوجًا فوق النموذج حتى تتم إضافة معالج حدث إلى الكود الخاص بحدث النقر على الزر. في معالج الحدث، أضف الكود أدناه.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace DemoApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { string connetionString; SqlConnection cnn; connetionString = @"Data Source=WIN-50GP30FGO75;Initial Catalog=Demodb;User ID=sa;Password=demol23"; cnn = new SqlConnection(connetionString); cnn.Open(); MessageBox.Show("Connection Open !"); cnn.Close(); } } }
Code تفسير:-
- الخطوة الأولى هي إنشاء المتغيرات التي سيتم استخدامها لإنشاء سلسلة الاتصال والاتصال بقاعدة بيانات SQL Server.
- الخطوة التالية هي إنشاء سلسلة الاتصال. يجب تحديد سلسلة الاتصال بشكل صحيح حتى تتمكن لغة C# من فهم سلسلة الاتصال. تتكون سلسلة الاتصال من الأجزاء التالية
- مصدر البيانات – هذا هو اسم الخادم الذي توجد عليه قاعدة البيانات. في حالتنا، فهو موجود على جهاز يسمى WIN-50GP30FGO75.
- يتم استخدام الكتالوج الأولي لتحديد اسم قاعدة البيانات
- معرف المستخدم وكلمة المرور هما بيانات الاعتماد المطلوبة للاتصال بقاعدة البيانات.
- بعد ذلك، نقوم بتعيين سلسلة الاتصال للمتغير cnn. يتم استخدام المتغير cnn وهو من النوع SqlConnection لتأسيس الاتصال بقاعدة البيانات.
- بعد ذلك، نستخدم الأسلوب Open للمتغير cnn لفتح اتصال بقاعدة البيانات. نقوم بعد ذلك بعرض رسالة للمستخدم تفيد بأنه تم إنشاء الاتصال.
- بمجرد اكتمال العملية بنجاح، نقوم بعد ذلك بإغلاق الاتصال بقاعدة البيانات. ومن الأفضل دائمًا إغلاق الاتصال بقاعدة البيانات إذا لم يكن هناك أي شيء آخر مطلوب القيام به على قاعدة البيانات.
عند ضبط الكود أعلاه وتنفيذ المشروع باستخدام Visual Studio، ستحصل على الناتج التالي. بمجرد عرض النموذج، انقر فوق الزر Connect (اتصال).
انتاج:-
عند النقر على زر "الاتصال"، يمكنك أن ترى من الناتج أن اتصال قاعدة البيانات قد تم إنشاؤه. ومن ثم، تم عرض مربع الرسالة.
الوصول إلى البيانات باستخدام SqlDataReader
لإظهار كيفية الوصول إلى البيانات باستخدام C#، دعنا نفترض أن لدينا القطع الأثرية التالية في قاعدة البيانات الخاصة بنا.
- جدول يسمى ديموتب. سيتم استخدام هذا الجدول لتخزين معرف وأسماء البرامج التعليمية المختلفة.
- سيحتوي الجدول على عمودين، أحدهما يسمى "TutorialID" والآخر يسمى "TutorialName".
- في الوقت الحالي، سيحتوي الجدول على صفين كما هو موضح أدناه.
| معرف البرنامج التعليمي | اسم البرنامج التعليمي |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
دعنا نغير الكود الموجود في النموذج الخاص بنا، حتى نتمكن من الاستعلام عن هذه البيانات وعرض المعلومات عبر مربع الرسائل. لاحظ أن كل الكود المدخل أدناه هو استمرار للكود المكتوب لاتصال البيانات في القسم السابق.
الخطوة 1) دعنا نقسم الكود إلى جزأين بحيث يكون من السهل على المستخدم فهمه.
- الأول سيكون إنشاء عبارة "select" الخاصة بنا، والتي سيتم استخدامها لقراءة البيانات من قاعدة البيانات.
- سنقوم بعد ذلك بتنفيذ عبارة "select" على قاعدة البيانات وجلب جميع صفوف الجدول وفقًا لذلك.
Code تفسير:-
- الخطوة الأولى هي إنشاء المتغيرات التالية
- SQLCommand – إن SQLCommand عبارة عن فئة محددة في لغة C#. تُستخدم هذه الفئة لإجراء عمليات القراءة والكتابة في قاعدة البيانات. وبالتالي، فإن الخطوة الأولى هي التأكد من إنشاء نوع متغير من هذه الفئة. سيتم بعد ذلك استخدام هذا المتغير في الخطوات اللاحقة لقراءة البيانات من قاعدة البيانات الخاصة بنا.
- يتم استخدام كائن DataReader للحصول على كافة البيانات المحددة بواسطة استعلام SQL. يمكننا بعد ذلك قراءة جميع صفوف الجدول واحدًا تلو الآخر باستخدام قارئ البيانات.
- نقوم بعد ذلك بتحديد متغيرين من السلسلة، أحدهما هو "SQL" للاحتفاظ بسلسلة أوامر SQL الخاصة بنا. التالي هو "الإخراج" الذي سيحتوي على جميع قيم الجدول.
- الخطوة التالية هي تحديد عبارة SQL، والتي سيتم استخدامها ضد قاعدة البيانات الخاصة بنا. في حالتنا، هو "اختر معرف البرنامج التعليمي، اسم البرنامج التعليمي من ديموتب". سيؤدي هذا إلى جلب كافة الصفوف من الجدول demotb.
- بعد ذلك، نقوم بإنشاء كائن الأمر الذي يتم استخدامه لتنفيذ عبارة SQL على قاعدة البيانات. في أمر SQL، يجب عليك تمرير كائن الاتصال وسلسلة SQL.
- بعد ذلك، سنقوم بتنفيذ أمر قارئ البيانات، والذي سيجلب جميع الصفوف من جدول ديموتب.
- الآن بعد أن أصبح لدينا جميع صفوف الجدول، نحتاج إلى آلية للوصول إلى الصف واحدًا تلو الآخر. لهذا، سوف نستخدم العبارة while. سيتم استخدام عبارة while للوصول إلى الصفوف من قارئ البيانات واحدًا تلو الآخر. نستخدم بعد ذلك طريقة GetValue للحصول على قيمة TutorialID وTutorialName.
الخطوة 2) في الخطوة الأخيرة، سنقوم فقط بعرض المخرجات للمستخدم وإغلاق جميع الكائنات المرتبطة بعملية قاعدة البيانات.
Code تفسير:-
- سنواصل الكود الخاص بنا من خلال عرض قيمة متغير الإخراج باستخدام الرسالةBox. سيحتوي متغير الإخراج على كافة القيم من جدول ديموتب.
- نقوم أخيرًا بإغلاق جميع الكائنات المرتبطة بعملية قاعدة البيانات الخاصة بنا. تذكر أن هذه ممارسة جيدة دائمًا.
عند ضبط الكود أعلاه وتشغيل المشروع باستخدام Visual Studio، ستحصل على الناتج التالي. بمجرد عرض النموذج، انقر فوق الزر Connect (اتصال).
انتاج:-
من خلال الإخراج، يمكنك أن ترى بوضوح أن البرنامج كان قادرًا على الحصول على القيم من قاعدة البيانات. ثم يتم عرض البيانات في مربع الرسالة.
C# أدخل في قاعدة البيانات
تمامًا مثل الوصول إلى البيانات، تتمتع لغة C# بالقدرة على إدراج السجلات في قاعدة البيانات أيضًا. لعرض كيفية إدراج السجلات في قاعدة بياناتنا، لنأخذ نفس بنية الجدول التي تم استخدامها أعلاه.
| معرف البرنامج التعليمي | اسم البرنامج التعليمي |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
لنغير الكود الموجود في النموذج الخاص بنا، حتى نتمكن من إدراج الصف التالي في الجدول
| معرف البرنامج التعليمي | اسم البرنامج التعليمي |
|---|---|
| 3 | VB.Net |
لذا، فلنقم بإضافة الكود التالي إلى برنامجنا. سيتم استخدام مقتطف الكود أدناه لإدراج سجل موجود في قاعدة البيانات الخاصة بنا.
Code تفسير:-
- الخطوة الأولى هي إنشاء المتغيرات التالية
- SQLCommand – يستخدم هذا النوع من البيانات لتحديد الكائنات المستخدمة في تنفيذ عمليات SQL على قاعدة البيانات. سيحمل هذا الكائن أمر SQL الذي سيتم تنفيذه على قاعدة بيانات SQL Server الخاصة بنا.
- يتم استخدام كائن DataAdapter لإجراء عمليات SQL محددة مثل أوامر الإدراج والحذف والتحديث.
- نقوم بعد ذلك بتحديد متغير سلسلة، وهو "SQL" للاحتفاظ بسلسلة أوامر SQL الخاصة بنا.
- الخطوة التالية هي تحديد عبارة SQL التي سيتم استخدامها في قاعدة البيانات الخاصة بنا. في حالتنا، نقوم بإصدار بيان إدراج، والذي سيؤدي إلى إدراج سجل TutorialID=1 وTutorialName=VB.Net
- بعد ذلك، نقوم بإنشاء كائن الأمر الذي يتم استخدامه لتنفيذ عبارة SQL على قاعدة البيانات. في أمر SQL، يجب عليك تمرير كائن الاتصال وسلسلة SQL
- في أمر محول البيانات الخاص بنا، نقوم الآن بربط أمر الإدراج SQL بالمحول الخاص بنا. ثم نقوم أيضًا بإصدار طريقة ExecuteNonQuery التي تُستخدم لتنفيذ عبارة الإدراج على قاعدة البيانات الخاصة بنا. تُستخدم طريقة "ExecuteNonQuery" في C# لإصدار أي عبارات DML على قاعدة البيانات. ونعني بعبارات DML عملية الإدراج والحذف والتحديث. في C#، إذا كنت تريد إصدار أي من هذه العبارات على جدول، فيجب عليك استخدام طريقة ExecuteNonQuery.
- نقوم أخيرًا بإغلاق جميع الكائنات المرتبطة بعملية قاعدة البيانات الخاصة بنا. تذكر أن هذه ممارسة جيدة دائمًا.
عند ضبط الكود أعلاه وتنفيذ المشروع باستخدام Visual Studio، ستحصل على الناتج التالي. بمجرد عرض النموذج، انقر فوق الزر Connect (اتصال).
انتاج:-
إذا ذهبت إلى SQL Server Express وشاهدت الصفوف الموجودة في جدول ديموتب، فسترى الصف مدرجًا كما هو موضح أدناه
تحديث قاعدة بيانات C#
تمامًا مثل الوصول إلى البيانات، تتمتع لغة C# بالقدرة على تحديث السجلات الموجودة من قاعدة البيانات أيضًا. لعرض كيفية تحديث السجلات في قاعدة بياناتنا، لنأخذ نفس بنية الجدول التي تم استخدامها أعلاه.
| معرف البرنامج التعليمي | اسم البرنامج التعليمي |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
| 3 | VB.Net |
لنغير الكود في النموذج الخاص بنا، حتى نتمكن من تحديث الصف التالي. قيمة الصف القديمة هي TutorialID كـ "3" واسم البرنامج التعليمي كـ "VB.Net". والذي سنقوم بتحديثه إلى "VB.Net complete" بينما ستظل قيمة الصف الخاصة بـ Tutorial ID كما هي.
الصف القديم
| معرف البرنامج التعليمي | اسم البرنامج التعليمي |
|---|---|
| 3 | VB.Net |
صف جديد
| معرف البرنامج التعليمي | اسم البرنامج التعليمي |
|---|---|
| 3 | VB.Net مكتمل |
لذا، فلنقم بإضافة الكود التالي إلى برنامجنا. سيتم استخدام مقتطف الكود أدناه لتحديث سجل موجود في قاعدة البيانات الخاصة بنا.
مثال على استخدام أمر SQL في لغة C# Code تفسير:-
- الخطوة الأولى هي إنشاء المتغيرات التالية
- SQLCommand – يستخدم هذا النوع من البيانات لتحديد الكائنات المستخدمة في تنفيذ عمليات SQL على قاعدة البيانات. سيحمل هذا الكائن أمر SQL الذي سيتم تنفيذه على قاعدة بيانات SQL Server الخاصة بنا.
- يتم استخدام كائن dataadapter لإجراء عمليات SQL محددة مثل أوامر الإدراج والحذف والتحديث.
- ثم نقوم بتحديد متغير سلسلة، وهو SQL للاحتفاظ بسلسلة أوامر SQL الخاصة بنا.
- الخطوة التالية هي تحديد عبارة SQL التي سيتم استخدامها في قاعدة البيانات الخاصة بنا. في حالتنا، نقوم بإصدار بيان تحديث، سيؤدي هذا إلى تحديث اسم البرنامج التعليمي إلى "VB.Net Complete" بينما يظل معرف البرنامج التعليمي دون تغيير ويتم الاحتفاظ به كـ 3.
- بعد ذلك، سنقوم بإنشاء كائن الأمر، والذي سيتم استخدامه لتنفيذ عبارة SQL على قاعدة البيانات. في أمر SQL، قمت بتمرير كائن الاتصال وسلسلة SQL.
- في أمر محول البيانات الخاص بنا، نقوم الآن بربط أمر إدراج SQL بالمحول الخاص بنا. نقوم أيضًا بعد ذلك بإصدار طريقة ExecuteNonQuery التي تُستخدم لتنفيذ بيان التحديث على قاعدة البيانات الخاصة بنا.
- نقوم أخيرًا بإغلاق جميع الكائنات المرتبطة بعملية قاعدة البيانات الخاصة بنا. تذكر أن هذه ممارسة جيدة دائمًا.
عند ضبط الكود أعلاه وتنفيذ المشروع باستخدام Visual Studio، ستحصل على الناتج التالي. بمجرد عرض النموذج، انقر فوق الزر Connect (اتصال).
انتاج:-
إذا ذهبت بالفعل إلى SQL Server Express وشاهدت الصفوف الموجودة في جدول ديموتب، فسترى أنه تم تحديث الصف بنجاح كما هو موضح أدناه.
حذف السجلات
تمامًا مثل الوصول إلى البيانات، تتمتع لغة C# بالقدرة على حذف السجلات الموجودة من قاعدة البيانات أيضًا. لعرض كيفية حذف السجلات في قاعدة بياناتنا، لنأخذ نفس بنية الجدول التي تم استخدامها أعلاه.
| معرف البرنامج التعليمي | اسم البرنامج التعليمي |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
| 3 | VB.Net مكتمل |
لنغير الكود الموجود في النموذج الخاص بنا، حتى نتمكن من حذف الصف التالي
| معرف البرنامج التعليمي | اسم البرنامج التعليمي |
|---|---|
| 3 | VB.Net مكتمل |
لذا، فلنقم بإضافة الكود التالي إلى برنامجنا. سيتم استخدام مقتطف الكود أدناه لحذف سجل موجود في قاعدة البيانات الخاصة بنا.
Code تفسير:-
- الفرق الرئيسي في هذا الكود هو أننا نقوم الآن بإصدار عبارة حذف SQL. يتم استخدام عبارة الحذف لحذف الصف الموجود في جدول demotb الذي يحتوي فيه TutorialID على قيمة 3.
- في أمر محول البيانات الخاص بنا، نقوم الآن بربط أمر إدراج SQL بالمحول الخاص بنا. نقوم أيضًا بعد ذلك بإصدار طريقة ExecuteNonQuery التي تُستخدم لتنفيذ عبارة الحذف في قاعدة البيانات الخاصة بنا.
عند ضبط الكود أعلاه وتنفيذ المشروع باستخدام Visual Studio، ستحصل على الناتج التالي. بمجرد عرض النموذج، انقر فوق الزر Connect (اتصال).
انتاج:-
إذا ذهبت بالفعل إلى SQL Server Express وشاهدت الصفوف الموجودة في جدول ديموتب، فسترى أنه تم حذف الصف بنجاح كما هو موضح أدناه.
ربط عناصر التحكم بالبيانات
في الأقسام السابقة، رأينا كيف يمكننا استخدام أوامر C# مثل SQLCommand وSQLReader لجلب البيانات من قاعدة البيانات. كما رأينا كيف نقرأ كل صف من الجدول ونستخدم مربع رسالة لعرض محتويات الجدول للمستخدم.
لكن من الواضح أن المستخدمين لا يريدون رؤية البيانات المرسلة عبر صناديق الرسائل ويرغبون في وجود عناصر تحكم أفضل لعرض البيانات. دعنا نأخذ هيكل البيانات أدناه في جدول
| معرف البرنامج التعليمي | اسم البرنامج التعليمي |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
| 3 | VB.Net مكتمل |
من بنية البيانات أعلاه، قد يرغب المستخدم بشكل مثالي في رؤية معرف البرنامج التعليمي واسم البرنامج التعليمي معروضين في مربع نص. ثانيًا، قد يرغب المستخدمون في الحصول على نوع من عناصر التحكم بالزر التي قد تسمح لهم بالانتقال إلى السجل التالي أو السجل السابق في الجدول. سيتطلب هذا بعض الترميز الإضافي من جانب المطور.
الخبر السار هو أن لغة C# يمكنها تقليل الجهد الإضافي في الترميز من خلال السماح بربط عناصر التحكم بالبيانات. وهذا يعني أن لغة C# يمكنها ملء قيمة مربع النص تلقائيًا وفقًا لحقل معين في الجدول.
لذا، يمكنك الحصول على مربعي نص في نموذج Windows. يمكنك بعد ذلك ربط مربع نص بحقل TutorialID ومربع نص آخر بحقل TutorialName. يتم هذا الربط في مصمم Visual Studio نفسه، ولا تحتاج إلى كتابة كود إضافي لهذا الغرض.
سيضمن Visual Studio كتابة التعليمات البرمجية لك لضمان عمل الارتباط. ثم عند تشغيل التطبيق، ستتصل عناصر التحكم في مربع النص تلقائيًا بقاعدة البيانات، وستجلب البيانات وتعرضها في عناصر التحكم في مربع النص. لا يلزم وجود أي تعليمات برمجية من جانب المطور لتحقيق ذلك.
دعونا نلقي نظرة على مثال رمزي لكيفية تحقيق ربط عناصر التحكم.
في مثالنا، سنقوم بإنشاء مربعي نص في نموذج Windows. سيمثلان معرف البرنامج التعليمي واسم البرنامج التعليمي على التوالي. سيتم ربطهما بحقلي معرف البرنامج التعليمي واسم البرنامج التعليمي في قاعدة البيانات وفقًا لذلك.
دعونا نتبع الخطوات المذكورة أدناه لتحقيق ذلك.
الخطوة 1) قم بإنشاء النموذج الأساسي. في النموذج، اسحب وأفلِت مكونين - العلامات ومربعات النص. ثم قم بتنفيذ الخطوات الفرعية التالية
- ضع القيمة النصية للتسمية الأولى كمعرف TutorialID
- ضع القيمة النصية للتسمية الثانية باسم TutorialName
- ضع خاصية الاسم لمربع النص الأول كـ txtID
- ضع خاصية الاسم لمربع النص الثاني كـ txtName
فيما يلي الشكل الذي سيبدو عليه النموذج بمجرد تنفيذ الخطوات المذكورة أعلاه.
الخطوة 2) الخطوة التالية هي إضافة مستعرض ملزم إلى النموذج. يمكن لعنصر التحكم في مستعرض الربط التنقل تلقائيًا عبر كل صف من الجدول. لإضافة مستعرض الربط، ما عليك سوى الانتقال إلى صندوق الأدوات وسحبه إلى النموذج.
الخطوة 3) الخطوة التالية هي إضافة رابط إلى قاعدة البيانات الخاصة بنا. يمكن القيام بذلك بالانتقال إلى أي عنصر تحكم في مربع النص والنقر فوق الخاصية DataBindings->Text. يتم استخدام Binding Navigator لإنشاء رابط من تطبيقك إلى قاعدة البيانات.
عند تنفيذ هذه الخطوة، سيضيف Visual Studio تلقائيًا الكود المطلوب إلى التطبيق للتأكد من ربط التطبيق بقاعدة البيانات. عادةً ما يشار إلى قاعدة البيانات في Visual Studio باسم مصدر بيانات المشروع. لذا، لضمان إنشاء الاتصال بين التطبيق وقاعدة البيانات، فإن الخطوة الأولى هي إنشاء مصدر بيانات المشروع.
ستظهر الشاشة التالية. انقر فوق الرابط "إضافة مصدر بيانات المشروع". عند النقر فوق مصدر بيانات المشروع، سيظهر لك معالج؛ سيسمح لك هذا بتحديد اتصال قاعدة البيانات.
الخطوة 4) بمجرد النقر فوق رابط إضافة مصدر بيانات المشروع، سيتم تقديم معالج لك سيتم استخدامه لإنشاء اتصال بقاعدة بيانات demotb. توضح الخطوات التالية بالتفصيل ما يلزم تكوينه أثناء كل خطوة من خطوات المعالج.
- في الشاشة المنبثقة، اختر نوع مصدر البيانات كقاعدة بيانات ثم انقر فوق الزر التالي.
- في الشاشة التالية، تحتاج إلى البدء في إنشاء سلسلة الاتصال بقاعدة البيانات. سلسلة الاتصال مطلوبة للتطبيق لإنشاء اتصال بقاعدة البيانات. يحتوي على معلمات مثل اسم الخادم واسم قاعدة البيانات واسم برنامج التشغيل.
- انقر على زر اتصال جديد
- اختر مصدر البيانات ك Microsoft SQL Server
- انقر فوق الزر متابعة.
- بعد ذلك، تحتاج إلى إضافة بيانات الاعتماد للاتصال بقاعدة البيانات
- اختر اسم الخادم الذي يوجد عليه SQL Server
- أدخل معرف المستخدم وكلمة المرور للاتصال بقاعدة البيانات
- اختر قاعدة البيانات كـdemotb
- انقر فوق الزر "موافق".
- في هذه الشاشة سوف نقوم بتأكيد جميع الإعدادات التي تم حملها على الشاشات السابقة.
- اختر الخيار "نعم" لتضمين البيانات الحساسة في سلسلة الاتصال
- انقر على زر "التالي".
- في الشاشة التالية، انقر على زر "التالي" لتأكيد إنشاء سلسلة الاتصال
- في هذه الخطوة،
- اختر جداول ديموتب التي ستظهر في الشاشة التالية.
- سيصبح هذا الجدول الآن مصدر بيانات متاحًا في مشروع C#
عندما تنقر على زر إنهاء، البصرية ستوديو سيضمن الآن أن التطبيق يمكنه الاستعلام عن كافة الصفوف الموجودة في الجدول Demotb.
الخطوة 5) الآن بعد أن تم تعريف مصدر البيانات، نحتاج الآن إلى ربط مربعي النص TutorialID وTutorialName بجدول demotb. عندما تنقر فوق خاصية Text في مربعي النص TutorialID أو TutorialName، سترى الآن أن مصدر الربط بجدول demotb متاح.
بالنسبة لمربع النص الأول، اختر معرف البرنامج التعليمي. كرر هذه الخطوة بالنسبة لمربع النص الثاني واختر الحقل باسم TutorialName. توضح الخطوات أدناه كيفية التنقل إلى كل عنصر تحكم وتغيير الارتباط وفقًا لذلك.
- انقر على عنصر التحكم معرف البرنامج التعليمي.
- في نافذة الخصائص، سترى خصائص مربع النص TutorialID. انتقل إلى خاصية النص وانقر على زر السهم لأسفل.
- عند النقر فوق زر السهم لأسفل، سترى خيار مصدر ديموتببيندينج. وتحت هذا، سترى خيارات TutorialName وTutorialID. اختر معرف البرنامج التعليمي واحد.
كرر الخطوات الثلاث المذكورة أعلاه لمربع النص "اسم البرنامج التعليمي".
- لذا انقر فوق مربع نص اسم البرنامج التعليمي
- انتقل إلى نافذة الخصائص
- اختر خاصية النص
- اختر خيار TutorialName ضمن demotbBindingSource
الخطوة 6) بعد ذلك نحتاج إلى تغيير خاصية Binding Source الخاصة بـ BindingNavigator للإشارة إلى مصدر بيانات Demotb الخاص بنا. السبب وراء قيامنا بذلك هو أن Binding Navigator يحتاج أيضًا إلى معرفة الجدول الذي يجب الرجوع إليه.
يتم استخدام Binding Navigator لتحديد السجل التالي أو السابق في الجدول. لذا، على الرغم من إضافة مصدر البيانات إلى المشروع ككل وإلى عنصر التحكم في مربع النص، ما زلنا بحاجة إلى التأكد من أن Binding Navigator يحتوي أيضًا على رابط إلى مصدر البيانات الخاص بنا. للقيام بذلك، نحتاج إلى النقر فوق كائن Binding Navigator، والانتقال إلى خاصية Binding Source واختيار ما هو متاح
بعد ذلك، نحتاج إلى الانتقال إلى نافذة الخصائص حتى نتمكن من إجراء التغيير على خاصية Binding Source.
عند تنفيذ جميع الخطوات المذكورة أعلاه بنجاح، سوف تحصل على النتيجة المذكورة أدناه.
انتاج:-
الآن عندما يتم إطلاق المشروع، يمكنك أن ترى أن مربعات النص تحصل تلقائيًا على القيم من الجدول.
عند النقر على زر التالي في المستعرض، يتم الانتقال تلقائيًا إلى السجل التالي في الجدول. وتظهر قيم السجل التالي تلقائيًا في مربعات النص
سي # داتاغريدفيو
تُستخدم شبكات البيانات لعرض البيانات من جدول بتنسيق يشبه الشبكة. عندما يرى المستخدم بيانات الجدول، فإنه عادةً ما يفضل رؤية جميع صفوف الجدول في لقطة واحدة. يمكن تحقيق ذلك إذا تمكنا من عرض البيانات في شبكة في النموذج.
تحتوي لغة C# وVisual Studio على شبكات بيانات مدمجة، ويمكن استخدامها لعرض البيانات. دعنا نلقي نظرة على مثال لذلك. في مثالنا، سيكون لدينا شبكة بيانات، والتي سيتم استخدامها لعرض قيم معرف البرنامج التعليمي واسم البرنامج التعليمي من جدول demotb.
الخطوة 1) اسحب عنصر التحكم DataGridView من صندوق الأدوات إلى النموذج في Visual Studio. يُستخدم عنصر التحكم DataGridView في Visual Studio لعرض صفوف الجدول بتنسيق يشبه الشبكة.
الخطوة 2) في الخطوة التالية، نحتاج إلى ربط شبكة البيانات الخاصة بنا بقاعدة البيانات. في القسم الأخير، قمنا بإنشاء مصدر بيانات المشروع. دعونا نستخدم نفس مصدر البيانات في مثالنا.
- أولاً، عليك اختيار الشبكة والنقر على السهم الموجود في الشبكة. سيؤدي هذا إلى إظهار خيارات تكوين الشبكة.
- في خيارات التكوين، ما عليك سوى اختيار مصدر البيانات كـdemotbBindingSource والذي كان مصدر البيانات الذي تم إنشاؤه في القسم السابق.
إذا تم تنفيذ جميع الخطوات المذكورة أعلاه كما هو موضح، فسوف تحصل على النتيجة المذكورة أدناه.
انتاج:-
من الإخراج، يمكنك أن ترى أن الشبكة قد تم ملؤها بالقيم من قاعدة البيانات.




































