PDA

View Full Version : سوال: یه راهنمایی در مورد استفاده از کمبو باکس میخوام.



mohammad_2039
دوشنبه 15 فروردین 1390, 08:27 صبح
با سلام به دوستان عزیز و تبریک مجدد سال نو
میخواستم بپرسم راه حلی وجود داره که یه کمبو باکس داده های غیر تکراری رو نمایش بده ؟؟ منظورم استفاده از Distinct در دستور select نیست.ببینید یه تعدادی رشته از جاهای مختلف (که هر با تغییر میکنه) به صورت متناوب باید به آیتم های یه کمبو باکس اضافه بشه. میخوام در نهایت وقتی کمبو رو باز میکنم داده ها به صورت غیرتکرای نمایش داده بشه.
با تشکر

shadi khanum
دوشنبه 15 فروردین 1390, 10:18 صبح
خودش که فک نکنم چنین خاصیتی داشته باشه، منتها موقع Add کردن آیتم به combo میتونید چک کنید که اگه نبود تو لیست آیتمها ، اضافه کنه

m.soleimani
دوشنبه 15 فروردین 1390, 10:29 صبح
با سلام به دوستان عزیز و تبریک مجدد سال نو
میخواستم بپرسم راه حلی وجود داره که یه کمبو باکس داده های غیر تکراری رو نمایش بده ؟؟ منظورم استفاده از Distinct در دستور select نیست.ببینید یه تعدادی رشته از جاهای مختلف (که هر با تغییر میکنه) به صورت متناوب باید به آیتم های یه کمبو باکس اضافه بشه. میخوام در نهایت وقتی کمبو رو باز میکنم داده ها به صورت غیرتکرای نمایش داده بشه.
با تشکر

با استفاده از حلقه‌ها و الگوریتم‌های جستجو اگر منظورت باشه که زیاد جالب در نمیاد چون ممکنه تعداد آیتم‌هایی که اضافه می‌شه زیاد بشه و افزایش بار برای همچین کاری منطقی نیست موفق باشید./

mohammad_2039
دوشنبه 15 فروردین 1390, 12:26 عصر
حالا اگه ممکنه مناسبترین راه حل که به ذهنتون میرسه پیشنهاد بدید یه کاریش بکنیم دیگه . ممنون

Arash_janusV3
دوشنبه 15 فروردین 1390, 12:37 عصر
با سلام به دوستان عزیز و تبریک مجدد سال نو
میخواستم بپرسم راه حلی وجود داره که یه کمبو باکس داده های غیر تکراری رو نمایش بده ؟؟ منظورم استفاده از Distinct در دستور select نیست.ببینید یه تعدادی رشته از جاهای مختلف (که هر با تغییر میکنه) به صورت متناوب باید به آیتم های یه کمبو باکس اضافه بشه. میخوام در نهایت وقتی کمبو رو باز میکنم داده ها به صورت غیرتکرای نمایش داده بشه.
با تشکر

آیا اطلاعات کومبو در جایی هم ذخیره میشه؟
table جداگانه داره؟

علیرضا حسن زاده
دوشنبه 15 فروردین 1390, 13:08 عصر
از Linq استفاده کنید

mohammad_2039
دوشنبه 15 فروردین 1390, 20:00 عصر
آیا اطلاعات کومبو در جایی هم ذخیره میشه؟
table جداگانه داره؟

نه تیبل نداره از ورودی ها خونده میشه.



از Linq استفاده کنید

Linq وارد نیستم یه راه نزدیکتر نیست ؟

sabloger
دوشنبه 15 فروردین 1390, 20:38 عصر
سلام دوست عزیز

میتونید موقع add کردن هر یک آیتم کل آیتم ها رو چک کنه و اگه تکراری بود اونو add نکنه

البته به گفته دوستمون اگه اگر آیتم ها زیاد بشه، این موضوع به یه مشکل وقت گیر تبدیل میشه

اگر کارت ضروریه و به همچین مشکلی ممکنه که برخورد کنی بگو تا ببینم میشه یه الگوریتم براش در بیارم یا نه

موفق باشید

shadi khanum
دوشنبه 15 فروردین 1390, 20:44 عصر
میتونی اطلاعاتی که تو کمبو Add میکنی رو همزمان تو یه آرایه هم بریزی مثلا S، و با دستورS.contains["text"] قبل از Add کردن به آرایه و کمبو چک کنی که اگه نبود ، هم به کمبو و هم به آرایه Add کنی

sabloger
دوشنبه 15 فروردین 1390, 21:00 عصر
میتونی اطلاعاتی که تو کمبو Add میکنی رو همزمان تو یه آرایه هم بریزی مثلا S، و با دستورS.contains["text"] قبل از Add کردن به آرایه و کمبو چک کنی که اگه نبود ، هم به کمبو و هم به آرایه Add کنی

سلام دوست عزیز

در مورد این کار اطلاع درستی ندارم اما به احتمال زیاد زمانی که صرف میکنه توی همون حدود است(حالا ممکنه که بخواطر کد نویسی سطح پایین کمی سریع تر باشه اما اصل موضوع همونه که از اول تا آخر رو چک میکنه)

بهترین راه ایراد یک راه حل سریع و در زمان است

موفق باشید

Directx
دوشنبه 15 فروردین 1390, 21:19 عصر
دوست عزیز مبنای کار کامپیوتر بر اساس بررسی شرط ها و ایجاد حلقه هاست و شما می گید که یه سری ایتم بهش اضافه می شن همین آیتم هایی که می گید حتما با یه حلقه یا چیزی شبیه این اضافه می شن(گفتید دستور select از پایگاه داده نیست) و دوم اینکه ببینید آیا آیتم تکراری وجود داره یا نه خودتون فک کنید وقضاوت کنید که آیا بررسی شرط تکراری بودن و بررسی آیتم ها اجتناب پذیر هست یا نه پس شما رو کارایی این حلقه ها و شرط ها تمرکز کنید نه اینکه بخایید راه حل معجزه آسا پیدا کنید ببخشیدا ولی من فکر می کنم سوالتون رو اشتباه مطرح کردید و باید بحثتون رو درمورد کارایی الگوریتم های جستجو پایه گذاری می کردید مثلا شما گفتید که اگه ایتم ها زیاد شدن performane کم می شه ولی من می گم همین زیاد شدن آیتم های کومبو می تونه کافی باشه برای پایین اوردن performance و زیاد فرقی نخواهد کرد با حالتی که این شرط رو برای مثلا ده ایتم بررسی می کنید مگر در مواردی که ایتم ها مثلا هزار تا بشن تا جستجو کردن با جستجو نکردن اختلاف زمانی زیادی داشته باشن که اینم غیر ممکن به نظر می رسه

omidh2007
دوشنبه 15 فروردین 1390, 22:08 عصر
همینو استفاده کن از همه راحت تره :
فرض کن یه button1 و comboBox1 و TextBox1 داریم .
توی Event های button1 بنویس :

string st = textBox1.Text;
if ( != comboBox1.Items.Contains(st)) comboBox1.Items.Add(st) ;

shadi khanum
دوشنبه 15 فروردین 1390, 22:40 عصر
سلام دوست عزیز

در مورد این کار اطلاع درستی ندارم اما به احتمال زیاد زمانی که صرف میکنه توی همون حدود است(حالا ممکنه که بخواطر کد نویسی سطح پایین کمی سریع تر باشه اما اصل موضوع همونه که از اول تا آخر رو چک میکنه)

بهترین راه ایراد یک راه حل سریع و در زمان است

موفق باشید

این که خودش هم برای اینکار بالاخره ازاول تا آخرو چک میکنه درسته ولی مطمئنا سریعتر از for نوشتن دستی! من خودم از این مدل استفاده میکنم و اتفاقا واسه تعداد بالا هم اصلا کند نیست، البته من نمیدونم مثال دوستمون حداکثر چندتاست..

m.soleimani
سه شنبه 16 فروردین 1390, 00:38 صبح
خوب گویا برای شما بحث جدی هست یه راه حل دیگه هم هست که سرعت رو زیاد می‌کنه شما کلیه آیتم‌های موجود در کنترل رو با یکی از الگوریتم‌های موجود سورت کن و بعد از همون حرفی که مشابه اولین حرف آیتمی که قراره تازه اضافه بشه هست شروع کن به چک کردن ببین موجود هست یا نه موفق باشید./