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

كيف اجعل ComboBox لا تكرر عناصر

بدأه حامد محمد الوصيف في 12 فبراير 2013 · 14 رد · 1,512 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

 

عندى  ComboBox  بها عناصر كثيرة ويوجد بها عناصر مكررة

 

فكيف اجعلها لا تكرر عناصر 

 

وشكرا جزيلا

13598125002.gif

038c8ecfa8.gif

#2

إذا كان الكومبو بوكس يأخذ بياناته من لائحة أو مجمع داتا أو من جدول فاستخدم استفسار Linq  أو SQL  مستخدما التعبير group by  لتجميعها

 

وإن لم يتضح ضع لنا الكود الخاص بملء الكومبو لنرى المناسب

ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها

كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور

الدورة التطبيقية لتعليم التصميم بالإليستريتور

#3

اهلا اخي

استخدم الخاصيه content  الموجوده بداخل  item

 

if

(

(combox1.item.content(textbox1.text

}


هذا الشرط يفحص اذا كانت القيمه موجوده ام لا

1
#4
أبو أحمد المبرمج كتب:

إذا كان الكومبو بوكس يأخذ بياناته من لائحة أو مجمع داتا أو من جدول فاستخدم استفسار Linq  أو SQL  مستخدما التعبير group by  لتجميعها

 

وإن لم يتضح ضع لنا الكود الخاص بملء الكومبو لنرى المناسب

 

 

المبرمج حمدي الصياح كتب:

اهلا اخي

استخدم الخاصيه content  الموجوده بداخل  item

 

if

(

(combox1.item.content(textbox1.text

}

هذا الشرط يفحص اذا كانت القيمه موجوده ام لا

 

 

بضيف العناصر من السهم اعلى  combox كما بالصورة

 

N7710147.jpg

−1

13598125002.gif

038c8ecfa8.gif

#5

جملة الاستعلام تحتاج الي مراجعة لا بها المشكله اي التكرار لا في combobox

#6

أخي أن تجعل مصدر البيانات للكومبو بوكس هو حقل من جدول مباشر

 

يجب عليك بناء استعلام يستخدم التجميع Group By      أو حذف التكرار SELECT DISTINCT 

ومن ثم تجعل الاستعلام مصدر البيانات للكمبو بوكس

 

http://www.w3schools.com/sql/sql_distinct.asp

ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها

كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور

الدورة التطبيقية لتعليم التصميم بالإليستريتور

#7
أبو أحمد المبرمج كتب:

أخي أن تجعل مصدر البيانات للكومبو بوكس هو حقل من جدول مباشر

 

يجب عليك بناء استعلام يستخدم التجميع Group By      أو حذف التكرار SELECT DISTINCT 

ومن ثم تجعل الاستعلام مصدر البيانات للكمبو بوكس

 

http://www.w3schools.com/sql/sql_distinct.asp

 

 

KARIMSOFT كتب:

جملة الاستعلام تحتاج الي مراجعة لا بها المشكله اي التكرار لا في combobox

 

 

ياريت لو توضيح أكثر أو لو يوجد كود   

 

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

13598125002.gif

038c8ecfa8.gif

#8

ياريت لو توضيح أكثر أو لو يوجد كود   

 

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

13598125002.gif

038c8ecfa8.gif

#9

هل بالإمكان وضع الكود أو شبيه له لنشرح لك عليه

على الأقل ضع لنا الصفحة التي فيها الكومبو أو حتى اعمل صفحة جديدة بكمبوبوكس فقط

المهم مصدر البيانات الذي معه

حتى نستطيع توضيح الحل

ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها

كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور

الدورة التطبيقية لتعليم التصميم بالإليستريتور

#10
أبو أحمد المبرمج كتب:

هل بالإمكان وضع الكود أو شبيه له لنشرح لك عليه

على الأقل ضع لنا الصفحة التي فيها الكومبو أو حتى اعمل صفحة جديدة بكمبوبوكس فقط

المهم مصدر البيانات الذي معه

حتى نستطيع توضيح الحل

 

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

 

N7710147.jpg

 

وبستخدم sql server 2000  

 

فى انتظار الرد

13598125002.gif

038c8ecfa8.gif

#11

أخي في نفس النافذة التي تربط بها الكومبو بوكس تجد في الأسفل Add Query منها تستطيع أن تجعل المصدر هو استعلام مخصص وليس حقل مباشر

انقر عليه ليظهر لك نافذة تصميم الاستعلام حينها اجعل العمود المحدد Group BY

ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها

كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور

الدورة التطبيقية لتعليم التصميم بالإليستريتور

#12

أخي الكريم ضع هذا الكود في المكان الذي تريده مع تغيير اسم Combobox إلى الاسم الذي تريده

 

 

            List<object> list = new List<object>();
            foreach (object o in comboBox1.Items)
                {
                if (!list.Contains(o))
                    {
                    list.Add(o);
                    }
                }
            comboBox1.Items.Clear();
            comboBox1.Items.AddRange(list.ToArray());
            }

 

أرجوا أن يكون هذا هو المطلوب

إذا أردت أن تـجـعـلـنـي سـعـيـداً ... فـعـلـمـنـي شـيـئـاً جـديـداً

#13
أبو أحمد المبرمج كتب:

أخي في نفس النافذة التي تربط بها الكومبو بوكس تجد في الأسفل Add Query منها تستطيع أن تجعل المصدر هو استعلام مخصص وليس حقل مباشر

انقر عليه ليظهر لك نافذة تصميم الاستعلام حينها اجعل العمود المحدد Group BY

 

السلام عليكم

 

ارجو التوضيح لانى لم استخدم هذا من قبل 

 

فقد ذهبت لنافذة التصميم  Add Query 

 

ولم اوصل أن اجعل العمود المحدد Group BY

 

فارجو التوضيح وماذا اكتب بالضبط 

 

جزاك الله كل خير

 

 

Mr.Mando كتب:

أخي الكريم ضع هذا الكود في المكان الذي تريده مع تغيير اسم Combobox إلى الاسم الذي تريده

 

 

            List<object> list = new List<object>();
            foreach (object o in comboBox1.Items)
                {
                if (!list.Contains(o))
                    {
                    list.Add(o);
                    }
                }
            comboBox1.Items.Clear();
            comboBox1.Items.AddRange(list.ToArray());
            }

 

أرجوا أن يكون هذا هو المطلوب

 

 

يوجد خطا فى هذا السط

 

 

   comboBox1.Items.Clear();
  comboBox1.Items.AddRange(list.ToArray());

ارجو الحل جزاك الله كل خير

13598125002.gif

038c8ecfa8.gif

#14

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

#15

هذا كو بسيط عملته لمن كان عندي سكل سيرفر 2012 

 

بس ما موتاكد لو يشتغل علي ال2000 وارجوا من الاعضاء تجربته لاني مش متاكد منه 

 

SqlConnection con = New SqlConnection("Data Source=(local);Initial Catalog=DataBase;User Id=sa;Password=password";"); //هذا اسكربت الاتصال مع الاسكل سيرفر
/* Datae Source اسم سيرفر مثال HawasMan/SQLExpress
	Initial Catalog اسم الداتا بيس الي فيها التابيل الي عايز تسحب منها المعلومات
	User Id و Password اظنهم واضحين ما يحتاجوا شرح
 */
SqlCommand cmd;// متغير جديد علشان تحط فيه الكومند الاسكل سيرفر الي عايزه مثل Select * from Table
SqlDataReader dread; // علشان يقرا مخرجات ال cmd

public void connection()
{
		con.Open(); // يفتح الاتصال مع الاسكل سيرفر
		comboBox1.Items.Clear();//يمسح المعلومات الموجودة في الكومبوا سابقا
		cmd = new SqlCommand("select DISTINCT * from DataBaseTable", con);//هذا الاسكربت الي تجلب بيه المعلومات من التيبل
		dread = cmd.ExecuteReader(); // نقرا مخرجات الاسكربت
		while (dread.Read())
		{
			comboBox1.Items.Add(dread(0));
		}
		dread.Close();// غلق القارئ وهذا الكود مهم جدا ولا حيجيك خلل من البرنامج
}

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