تقييم الموضوع :
  • 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 م ب / التحميلات : 52)
الرد
تم الشكر بواسطة:
#3
الله يبارك بيك اخي العزيز جعلها الله في ميزان حسناتك و ان كنت لم تستخدم العنصر (Background Worker) ولكن طريقتك في ملأ الـ (TreeView) تغني عن استخدام الـ (Background Worker) حيث ان عملية ملأ شجر الحسابات سريعة .. اكرر شكري لك.

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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Sad [VB.NET] اريد تشغيل شرط if لو متغير رقم" 0" خلال دقيقتين انو ينفذ امر كذا kalshsami 7 76 منذ 6 ساعة مضت
آخر رد: mrnooo2000
  [VB.NET] سؤال بخصوص تصغير الفورم محمد اسماعيل 10 116 18-07-18, 05:57 PM
آخر رد: محمد اسماعيل
  [VB.NET] سؤال عن قاعدة البيانات من الخبراء محمد اسماعيل 2 86 17-07-18, 01:25 PM
آخر رد: محمد اسماعيل
  [VB.NET] سؤال عن الــ DataGrid m.reyati 8 99 15-07-18, 03:48 AM
آخر رد: elgokr
  [VB.NET] سؤال عن قواعد البيانات محمد اسماعيل 3 69 10-07-18, 11:01 PM
آخر رد: elgokr
  سؤال :) hichem1 1 43 09-07-18, 12:25 AM
آخر رد: elgokr
  [سؤال] كيف اقوم بعمل فلتر لبيانات في LISTBOX تم تعبئة البيانات من خلال قاعدة البيانات dametucorazon 3 74 08-07-18, 03:05 AM
آخر رد: elgokr
  [VB.NET] سؤال أي قواعد البيانات أنسب لمشروع يعمل علي جهاز واحد فقط dametucorazon 6 138 06-07-18, 02:54 AM
آخر رد: dametucorazon
  [نقاش] ارسال رسائل whatsapp من خلال ال vb.net mohamed haroon 4 443 29-06-18, 08:55 AM
آخر رد: sendbad100
  سؤال كيف انفذ امر من لوحة المفاتيح من دون الظغط علي اي زر علي لوحة المفاتيح alipro 0 47 29-06-18, 08:38 AM
آخر رد: alipro

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


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