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

كيف اجعل بيانات combo box2 تظهر حسب اختيارات combo box 1

بدأه iraqi_it_84 في 28 يناير 2013 · 5 رد · 782 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

لدي قاعدة بيانات اكسس فيها 4 tables الاول لاسماء الدوريات العالمية الشهيرة والثاني للفرق التي تلعب بالدوري الانكليزي الثالث للفرق الايطالية الرابع للاسبانية الخامس للالمانية

قمت بعمل 2 combo box كما موضح في الصورة الاول استطيع من خلاله اختيار الدوري (انكليزي,ايطالي,الماني...الخ) الكومبوبوكس الثاني من المفترض ان تعتمد قائمتة حسب الاول يعني في حال تم اختيار الدوري الانكليزي الكومبوبوكس الثاني يعرض قائمة الفرق الانكليزية فقط يعني يذهب الى Tabl2 كيف يمكن القيام بمثل هذه العملية

 

135939187881.jpg

#2

اتمنى ان يوضح هذا الكود الفكره

 

    public partial class Form1 : Form
    {
        static string[] uk = { "ManU", "Liverpool", "NewCastle" };
        static string[] fr = { "ParisSG", "Purdu", "Leon" };
        static string[] gr = { "BayrnMunich", "BruciaDortmond", "Shalka" };
        static string[] sp = { "Barcelona", "Real.M", "Valencia" };
        Dictionary<string, string[]> dic = new Dictionary<string, string[]> { { "UK", uk }, { "France", fr }, { "Germany", gr }, { "Spain", sp } };

        public Form1()
        {
            InitializeComponent();
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            comboBox2.DataSource = dic[comboBox1.SelectedItem.ToString()];
        }
    }

طبعا لا يشترط عمل Hard coding يمكنك احضار البيانات من قاعدة البيانات او ملف XML او WebService او غير ذلك

تم تعديل هذه المشاركة بواسطة mental-driller في 28 يناير 2013 في 20:16

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

#3

اكرمك الله اخي

mental-driller
#4

السلام عليكم

شكرا اخي العزيز على الاجابة لكن الحل لم يفدني فهو لا يتضمنا اشارة الى  databasesource فعلى سبيل المثال لو اردت اضافت نادي الى دوري معين سوف اضطر من خلال الكود الى اداخله وهذا شئ لا اريده

حيث انني استطيع اضافة button الى الفورم تتضمن ادخال نادي جديد اما في حالتك فيجب الرجوع الى الكود لاضافة نادي جديد

#5
iraqi_it_84 كتب:

السلام عليكم

شكرا اخي العزيز على الاجابة لكن الحل لم يفدني فهو لا يتضمنا اشارة الى  databasesource فعلى سبيل المثال لو اردت اضافت نادي الى دوري معين سوف اضطر من خلال الكود الى اداخله وهذا شئ لا اريده

حيث انني استطيع اضافة button الى الفورم تتضمن ادخال نادي جديد اما في حالتك فيجب الرجوع الى الكود لاضافة نادي جديد

 

اخي العزيز الحل عباره عن Proof of Concept فقط للطريقه، ورجاء لا تخلط الامور يمكنك تحويل الكود الذي بالاعلى بحيث يستقبل Datasource بدلا من مصفوفه string، وانا قد اوضحت لك انه ليس من الضروري عمل hard coding. يمكنك ربط الــDictionary  بــ Observable Collection بحيث ان الادخال في الــ collection ينعكس تلقائيا في قاعدة البيانات. طبعا سوف تقوم بعمل تعبئه للـ Dictionary  في الــ Constructor.

 

Dictionary<string, DataTable> leagues = new Dictionary<string, DataTable>();

 

وعند اضافه نادي جديد

 

    private void simpleButton1_Click(object sender, EventArgs e)
        {
            leagues[league].Rows.Add(new DataRow());
        }

ارجو ان تكون متفاعل مع مواضيعك بشكل اكبر.

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

#6

شكرا اخي العزيز على المساعدة

صراحة وجدت حل اسهل حيث اعتمدت على هذا الشرح:

http://flylib.com/books/en/2.622.1.75/1/

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

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

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

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

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

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