البرمجة

دليل VB.NET: ملء TreeView باستخدام جدولين في قاعدة البيانات

فيما يلي إرشادات شاملة حول كيفية ملء TreeView باستخدام جدولين في قاعدة البيانات باستخدام لغة VB.NET. يمكن تحقيق هذا باستخدام ADO.NET للتفاعل مع قاعدة البيانات وتحديد هيكل TreeView بناءً على البيانات المُسترجعة. يرجى مراعاة الشرح التالي:

أولاً وقبل أي شيء آخر، يجب عليك التأكد من أنك قد قمت بتوصيل قاعدة البيانات الخاصة بك بنجاح باستخدام مثيل من كائن SqlConnection. سأفترض أن اتصال قاعدة البيانات قد تم بنجاح وقاعدة البيانات الخاصة بك تسمى “YourDatabase”.

vb.net
Imports System.Data.SqlClient Public Class Form1 Dim connectionString As String = "Data Source=YourServer;Initial Catalog=YourDatabase;Integrated Security=True" Dim connection As SqlConnection Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load ' تهيئة الاتصال بقاعدة البيانات connection = New SqlConnection(connectionString) ' استدعاء الدالة لملء TreeView PopulateTreeView() End Sub Private Sub PopulateTreeView() ' إعداد TreeView TreeView1.Nodes.Clear() ' فتح الاتصال بقاعدة البيانات connection.Open() ' استعلام SQL لاسترجاع البيانات من الجدولين Dim query As String = "SELECT * FROM Department; SELECT * FROM subDepartment" Dim dataSet As New DataSet() ' استخدام SqlDataAdapter لاسترجاع البيانات Using adapter As New SqlDataAdapter(query, connection) adapter.Fill(dataSet) End Using ' إغلاق الاتصال بقاعدة البيانات connection.Close() ' بناء هيكل TreeView باستخدام البيانات المُسترجعة If dataSet.Tables.Count > 0 Then For Each departmentRow As DataRow In dataSet.Tables(0).Rows Dim departmentNode As New TreeNode(departmentRow("department").ToString()) departmentNode.Tag = departmentRow("id") ' البحث في جدول subDepartment للأقسام الفرعية For Each subDepartmentRow As DataRow In dataSet.Tables(1).Rows If subDepartmentRow("id") = departmentRow("id") Then Dim subDepartmentNode As New TreeNode(subDepartmentRow("category").ToString()) subDepartmentNode.Tag = subDepartmentRow("id") departmentNode.Nodes.Add(subDepartmentNode) End If Next ' إضافة القسم الرئيسي إلى TreeView TreeView1.Nodes.Add(departmentNode) Next End If End Sub End Class

يرجى مراجعة الشيفرة أعلاه بعناية. يقوم الكود بتهيئة اتصال بقاعدة البيانات، ثم يستخدم استعلام SQL لاسترجاع البيانات من جدولي “Department” و”subDepartment”. بعد ذلك، يتم استخدام SqlDataAdapter لملء DataSet بالبيانات.

يتم إنشاء هيكل TreeView باستخدام البيانات المُسترجعة، حيث يتم تكرار الصفوف في جدول “Department” ولكل قسم رئيسي يتم البحث عن الأقسام الفرعية في جدول “subDepartment” وإضافتها كأفرع تحت القسم الرئيسي. يتم استخدام الخاصية “Tag” لتخزين الهوية الفريدة لكل قسم.

يرجى تعديل سلسلة الاتصال “connectionString” لتتناسب مع اتصال قاعدة البيانات الخاصة بك، واستبدال “YourServer” و “YourDatabase” بالقيم الصحيحة.

المزيد من المعلومات

بالطبع، دعني أوسع الشرح لتفهم الكود بشكل أفضل.

أولاً وقبل كل شيء، يجب أن نتأكد من أنك قد فهمت كيف يعمل الكود. ببساطة، الكود يستخدم ADO.NET للتفاعل مع قاعدة البيانات باستخدام لغة VB.NET. سنقوم بتوفير تفصيل إضافي للمراحل الرئيسية في الشيفرة:

  1. تهيئة الاتصال بقاعدة البيانات:

    vb.net
    Dim connectionString As String = "Data Source=YourServer;Initial Catalog=YourDatabase;Integrated Security=True" Dim connection As SqlConnection

    في هذا الجزء، تقوم بتحديد سلسلة الاتصال (connectionString) التي تحتوي على معلومات الخادم (YourServer) وقاعدة البيانات (YourDatabase). ثم يتم إنشاء مثيل لكائن SqlConnection.

  2. فتح الاتصال بقاعدة البيانات:

    vb.net
    connection.Open()

    يتم استخدام هذا السطر لفتح اتصال قاعدة البيانات قبل البدء في استرجاع البيانات.

  3. استعلام SQL وملء DataSet:

    vb.net
    Dim query As String = "SELECT * FROM Department; SELECT * FROM subDepartment" Dim dataSet As New DataSet() Using adapter As New SqlDataAdapter(query, connection) adapter.Fill(dataSet) End Using

    يقوم الاستعلام بتحديد جميع البيانات من جدولي “Department” و”subDepartment”. ثم يتم استخدام SqlDataAdapter لتنفيذ الاستعلام وملء DataSet بالبيانات المُسترجعة.

  4. بناء هيكل TreeView:

    vb.net
    For Each departmentRow As DataRow In dataSet.Tables(0).Rows ' ... إنشاء وتكوين القسم الرئيسي For Each subDepartmentRow As DataRow In dataSet.Tables(1).Rows ' ... البحث عن الأقسام الفرعية وإضافتها إلى القسم الرئيسي Next ' ... إضافة القسم الرئيسي إلى TreeView Next

    يتم تكرار الصفوف في جدول “Department”، ولكل قسم رئيسي يتم البحث في جدول “subDepartment” للأقسام الفرعية ذات الهوية المطابقة، ومن ثم إضافتها إلى القسم الرئيسي. يتم استخدام TreeNode لتمثيل القسم الرئيسي والفرعي، ويتم إضافتها إلى TreeView.

  5. إغلاق الاتصال بقاعدة البيانات:

    vb.net
    connection.Close()

    يتم استخدام هذا السطر لإغلاق اتصال قاعدة البيانات بمجرد الانتهاء من استخدامه.

يرجى التأكد من استبدال “YourServer” و “YourDatabase” بالقيم الصحيحة المتعلقة بقاعدة البيانات الخاصة بك. أيضا، يمكنك تخصيص هذا الكود حسب احتياجاتك، مثلاً يمكنك إضافة مزيد من المعالجة للتعامل مع الأخطاء أو تكامله مع واجهة المستخدم الخاصة بك.

زر الذهاب إلى الأعلى