تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
combobox لا يعرض الداتا عند عمل select
#1
السلام عليكم

اقوم يكتابة كود select في حدث combobox1.selectedindex

Dim com1 As New SqlCommand("select * from table_1 where id='" & Val(ComboBox4.Text) & "' ", con)
Dim s1 As New DataSet
Dim t1 As New SqlDataAdapter
t1.SelectCommand = com1
t1.Fill(s1, "table_1")
If s1.Tables(0).Rows.Count <> 0 Then
ComboBox1.DataSource = s1.Tables("table_1")
ComboBox1.DisplayMember = "name"
ComboBox1.ValueMember = "name"
End If
ولكن لا يعرض الداتا في combobox1 على الرغم من اني قمت بكتابة الكود في الجدول الخاص بالداتا في ال sql وتم عرض الاسم الخاص بال id
ملحوظة الكود يعمل في مكان اخر من الproject
ملحوظة تتكرر كثيرا هذه المشكلة الخاصة ب امر select في حدث combobox.selectedindex
ارجو الافادة وشكرا
الرد }}}
تم الشكر بواسطة: محمد اسماعيل
#2
أنت الآن في الحدث 
ComboBox.SelectedIndexChanged Event

وتقوم بإسناد مصدر البيانات ( DataSource ) إلى الـــ ComboBox1
عنما تقوم بإسناد أو تحديد مصدر البيانات للـ ComboBox1
ينتج عن هذا الأمر ( أحداث كثيرة ) ومن ضمنها إزالة أي عناصر في الــ ComboBox1 وربطها بالعناصر في الــ DataSource  الجديدة التي وضعتها أنت الآن
وهذا الأمر ينتج عنة أن يكون العنصر المحدد هو أول عنصر في المجموعة الموجودة في الــ DataSource 
مما يجبر الـــ ComboBox1 على إطلاق الحدث ( ComboBox.SelectedIndexChanged ) مره أخرى 
لاحظ أنك في الحدث  ( ComboBox.SelectedIndexChanged ) ولم تنتهي من الإجراءات التي كتبتها في هذا الحدث 
بالرغم من ذلك يتم إطلاقة مرة أخرى وأنت في منتصف الحدث القديم

إذا كانت لديك فكرة معينة لإعادة تعبئة الــ ComboBox1 من نفس الحدث الخاص به , 
قم بإنشاء متغير يدل على أنك تقوم بإعادة إسناد مصدر البيانات حتى تقوم بالخروج من الحدث 

مثلاً : قم بلإعلان عن متغير بإسم ( DataSourceIsChanging ) من نوع ( Boolean ) ( خارج الحدث )

Dim DataSourceIsChanging As Boolean = False

الأن في داخل الحدث وعند أول سطر تحقق من هذا المتغير حتى لا تتكرر الإجراءات
   







ملاحظات فقط لا غير :
مصدر البيانات يتم إسنادة مرة واحدة فقط عند إنشاء النافذة , لا تحتاج أن تقوم بإسنادة في كل مرة

لماذا تقوم بإنشاء DataSet في كل مرة
لماذا تقوم بإنشاء SqlDataAdapter في كل مرة

قم بإنشائهم مرة واحدة فقط 
في الحدث New مثلاً الخاص بالنافذة 
أو حتى أعلن عنها وإنشئها في العام الخاص بالنافذة ( ستتم قبل الحدث New )

كل ما عليك هو إعادة إستخدامها
الرد }}}


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كيف اتعامل مع databindings و ال combobox سلام و محبه 2 81 24-03-24, 05:00 AM
آخر رد: سلام و محبه
  استعلام select عن مجموعة بيانات Adel27213 1 210 15-03-24, 01:11 AM
آخر رد: justforit
  حذف الاسطر الفارغه من الداتا جريد فيو اليوم السابع 3 2,378 03-03-24, 12:57 AM
آخر رد: مصمم هاوي
  كيفية جمع أرقام عمود فى الداتا جريد فيو بناءاً على بيانات معينة heem1986 5 236 25-02-24, 11:26 PM
آخر رد: heem1986
  [VB.NET] مشكلة التاريخ في الداتا قريد فيو مبرمج صغير 1 6 404 24-01-24, 10:12 PM
آخر رد: annagui
  [VB.NET] استدعاء بيانات في TextBox بناء على combobox loay775 2 277 18-01-24, 05:07 PM
آخر رد: loay775
  هل الداتا قراد فيو تسمح بتعدد الاسطر داخل الخلية عند جلب بيانات نصية طويله من قاعدة ب khalidalwdi 3 468 10-11-23, 11:08 AM
آخر رد: khalidalwdi
  ممكن كود ترقيم تلقائي في الداتا غريد فيو المبرمج البسيط 16 10,601 08-11-23, 01:44 AM
آخر رد: الحزين اليماني
  انتقال المؤشر بين الخلايا في نفس الصف في الداتا جريد فيو fares_mohammed 2 470 03-11-23, 09:57 PM
آخر رد: fares_mohammed
  تعبئة CheckListBox من قاعدة البيانات حسب الإختيار من Combobox صالح عبدالله 1 339 14-10-23, 10:26 PM
آخر رد: aljzazy

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


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