الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

طلب مساعدة بخصوص تسريع تعبئة السجلات من قاعدة البيانات

بدأه assaf_abdullah في 21 ديسمبر 2008 · 4 رد · 919 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

اصدفائي اعضاء المنتدى ارجو منكم افادتي و لو باي معلومة ممكن ان تكون مفيدة

  Sub getAttachFiles(ByRef lv As ListView, ByVal TableName As String)
		Dim conn As New sqlconn
		Dim dt As DataTable = dtSearch(" * ", TableName, " and fk_ProjectNo='" & ProjectNo & "' order by FileNo")
		Dim str(5) As String
		For i As Integer = 0 To dt.Rows.Count - 1
			str(0) = dt.Rows(i)("FileNo").ToString
			str(1) = dt.Rows(i)("FileName").ToString.Replace("C:\Temp\", "")
			str(2) = dt.Rows(i)("FileExtention").ToString
			str(3) = dt.Rows(i)("DescFile").ToString
			str(4) = CDate(dt.Rows(i)("DateUpload")).ToString("dd/MM/yyyy")
			str(5) = dt.Rows(i)("FileNotes").ToString
			Dim item As New ListViewItem(str)
			lv.Items.Add(item)
			lv.Items(i).SubItems(0).Tag = dt.Rows(i)("FileName").ToString
			' if 1 then old
			lv.Items(i).SubItems(1).Tag = 1
		Next
	End Sub

الادات المستخدمة

ListView

لعرض السجلات من الداتا بيس

الكود السابق يقوم بتعبئة لست فيو من ناتج جملة استعلام و لكن المشكلة انه يعبئ خلية خلية في لست فيو ايتم

و من ثم بعد ذلك يضعها رو رو في اللست فيو و كما تعلمون ان هذا يستغرق و قت طويل

سؤالي , هل يعرف احدكم كيف اقوم بتعبئة اللست فيو دفعة وادة مثل الادات داتا جرد فيو

و ايضا اذا كان ذلك مستحيلا هل يعرف احدكم كنترول آخر غير اللست فيو و الداتا جرد فيو يقوم بتعبئة ريكورد

المشكلة تتلخص في البطئ الشديد في التعبثة لانها تاخذ فور لوب لتعبئتها فانا اقوم بوضع الفين ملف او اكثر فبيها و هذا ياخذ و قت طويل جدا , هذا عدى ان كودها موجود في اللود

تم تعديل هذه المشاركة بواسطة assaf_abdullah في 21 ديسمبر 2008 في 12:08

<EMBED src=http://www.abdelghafar.com/images/banners/bm2.swf width=486 height=60 type=application/x-shockwave-flash EMBED < menu="false" loop="true" quality="high">

#2

خلص الله بعيني استخدمت الداتا جرد فيو لكن الله يخليكو اذا حدى بيعرف اي معلومة تعبئ ريكورد دفعة واحدة مثل الداتا جرد يحكيلي و يخبرني

و سلامي لاعضاء المنتدى الغالي

<EMBED src=http://www.abdelghafar.com/images/banners/bm2.swf width=486 height=60 type=application/x-shockwave-flash EMBED < menu="false" loop="true" quality="high">

#3
 con.Open()
		Dim STR As String = "SELECT [_NAME] FROM mandate"
		Dim cmd As New OleDb.OleDbCommand(STR, con)
		cmd.CommandType = CommandType.Text
		Dim RED As OleDb.OleDbDataReader
		RED = cmd.ExecuteReader
		Do While RED.Read
			ListView1.Items.Add(RED("_NAME"))
		Loop

رد علينا يا شيخ الله يعافيك أن شاء الله يكون المطلوب

#4

يمكنك استخدام thread لكي لا تظطر الى الانتظار لكي تنتهي عملية التعبئة كليا

<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>

#5

اشكركم اخواني الكرام على التعاون

أما بالنسبة للاخ الساهر 24

فان هذا النوع من التصال ExecuteReader

لا يناسب قاعدة البيانات خاصتي لانه من نوع الكنكشن المرهق للفيرتشيوال نتوورك وهذا لا ينفع لانه مع مرور الوقت يصل حجم ال Pool الى اعلى حد مما يجعله يفصل البرنامج من الكنكشن سترنج

أما بالنسبة للاخ Romantic tuch فجوابه جيد و اعجبني لكني قد عملت ثرد هاي بريورتي و قد كان بطيئ ايضا لانه و قت فيزيائي

المشكلة اخواني حلت من بعد ان استخدمت داتا جرد و ليس لست فيو و لكن كنت اريد مشاركة الافكار معكم اذا كان احدكم يعرف كيف يعبئ اللست فيو دفعة واحدة من الداتا ست مباشرة

مرة ثانية شكرا لكم

<EMBED src=http://www.abdelghafar.com/images/banners/bm2.swf width=486 height=60 type=application/x-shockwave-flash EMBED < menu="false" loop="true" quality="high">

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…