تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
سؤال : ملأ TreeView من خلال الاداة Background Worker
#1
السلام عليكم
لدي نافذة نافذة تحتوي على عنصر TreeView المطلوب ملأ العنصر المذكور من قاعدة البيانات ,, في الحقيقة المشكلة ليست في ملأ عنصر الـ TreeView  و لكن المشكلة هي ان النافذة (Form) تتوقف عن الاستجابة لحين اكتمال عملية ملأ (TreeView) بالبيانات .
حاولت استخدام العنصر (Background Worker) الذي يقوم بتنفيذ عملية ملأ الـ (TreeView) بشكل منفصل عن عملية تحميل النافذة و لكن هنالك مشاكل في التنفيذ.
الطلب هو هل من الممكن شرح عملية استخدام العنصر (Background Worker) مع عملية ملأ الـ (TreeView) بالبيانات من قاعدة البيانات
علماً أن الكود المستخدم في عملية ملأ الـ (TreeView) هو :
كود :
   Public Sub FillTree1(ByVal Key As String, ByVal Txt As String, ByVal N As TreeNode)

       Dim cmd As SqlCommand
       Dim NN As TreeNode
       If N Is Nothing Then
           NN = TreeView1.Nodes.Add(Key, Txt)
       Else
           NN = N.Nodes.Add(Key, Txt)
       End If
       cmd = New SqlCommand("select * from Accounts_TB where AccountParent='" & Key & "'", con)
       Dim dr = cmd.ExecuteReader
       Do While dr.Read()
           FillTree1(dr("AccountCode"), dr("AccountCode") & " / " & dr("AccountName"), NN)
       Loop
       dr.Close()
       cmd.Dispose()

   End Sub


اسف على الاطالة و ارجو سرعة الرد

تحياتي...
الرد }}}}
تم الشكر بواسطة:
#2
تفضل اخي ...
كود :
Public Sub Fill(ByVal TreeView1 As TreeView, ByVal Dt As DataTable)
        On Error Resume Next

        TreeView1.Nodes.Clear()

        If Dt.Rows.Count > 0 Then

            For Each Row As DataRow In Dt.Rows

                Dim n As TreeNode() = TreeView1.Nodes.Find(Row("ID_Parent"), True)

                If n.Count = 0 Then
                    TreeView1.Nodes.Add(Row("ID"), Row("Ar_name"))
                Else
                    n(0).Nodes.Add(Row("ID"), Row("Ar_name"))
                End If

            Next

        End If
    End Sub



.rar   FillTreeView.rar (الحجم : 1.58 م ب / التحميلات : 25)
الرد }}}}
تم الشكر بواسطة:
#3
الله يبارك بيك اخي العزيز جعلها الله في ميزان حسناتك و ان كنت لم تستخدم العنصر (Background Worker) ولكن طريقتك في ملأ الـ (TreeView) تغني عن استخدام الـ (Background Worker) حيث ان عملية ملأ شجر الحسابات سريعة .. اكرر شكري لك.

تحياتي....
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Wink سؤال في اضافة وسحب اصناف من المخزن khadija_seedi_ali 2 55 أمس, 07:15 PM
آخر رد: khadija_seedi_ali
  سؤال حول Combobox noway 2 47 06-12-16, 04:26 AM
آخر رد: amgad525
  [VB.NET] سؤال كيف يمكن معرفة التغير في قاعدة البيانات وليد الزنتاني 2 114 10-11-16, 01:20 AM
آخر رد: وليد الزنتاني
Lightbulb [VB.NET] سؤال حول التعامل مع الماسح الضوئي salhigc 3 122 02-11-16, 04:15 PM
آخر رد: salhigc
Exclamation [VB.NET] سؤال احتاج مساعده فيه a_abdullah 11 166 25-10-16, 03:20 PM
آخر رد: a_abdullah
  سؤال بسيط في فصل التاريخ عن الوقت فراس صلاح 3 134 19-10-16, 04:17 AM
آخر رد: mhmd_911
  سؤال : عن داتا قريد تقسيم قيمة الى عمودين abid 5 124 13-10-16, 04:40 AM
آخر رد: abid
  سؤال بخصوص طباعة تقرير في فيجوال بيسك 2010 haiderkh 2 103 12-10-16, 08:48 PM
آخر رد: أبو عمر
  [VB.NET] سؤال في الريبورت فيور دمعتز السمان 1 78 08-10-16, 01:52 AM
آخر رد: ابو ليلى
  سؤال عن ربط البرنامج الفيجوال بيسك بالموقع لسه مبتدئ 4 160 06-10-16, 07:13 PM
آخر رد: سعود

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم