PDA

View Full Version : نمایش اطلاعات در ComboBox



hosseinsinohe
دوشنبه 12 مرداد 1388, 09:46 صبح
سلام بر دوستان و اساتید
سوالی که می خوام بپرسم رو دیروز پرسیده بودم (در بخش C sharp) ولی متاسفانه توسط آقای مداح حذف شده و گفتن که باید در این بخش مطرح کنم .
کاش ایشون به جای حذف اون رو انتقال می دادند به این بخش که کمکی کرده باشن.
خب بیخیال....


ببینید فرص کنید قراره در یک فیلد جدول وضعیت یک فرد(مثلا 1-عادی 2-اخراج 3-قبول و ....)هر کدام با یک کد ذخیره شوند.(نوع فیلد عدد صحیح)

حالا ما می خاوهیم از یک comboBox استفاده کنیم که مقادر رشته ای مربوط رو به صورت Lookup نمایش بده و قادر باشیم گزینه مورد نظز رو انتخاب کنیم.

سوال اصلی من اینه که عملیات Binding رو چطور انجام بدم که برای نمایش مقادیر رشته لازم نباشه اونا رو از یک جدول دیگه در بانک بخونم.(یعنی نمی خوام برای این چند مقدار یک جدول داشته باشم با دو فیلد کد و عنوان وضعیت )

امیدوارم که سوالم رو واضح گفته باشم.

hosseinsinohe
دوشنبه 12 مرداد 1388, 11:14 صبح
کسی نیست بتونه راه حلی برای حل این مساله پبشنهاد بده؟

Reza_Yarahmadi
دوشنبه 12 مرداد 1388, 12:52 عصر
روش ساده ای که به ذهنم میرسه اینه که یه DataSet درست کنی و بصورت دستی اونو پر کنی بعد کمبو رو به اون بایند کنی.
مثال:


DataSet ds = new DataSet();
ds.Tables.Add("Temp");
ds.Tables[0].Columns.Add("Name");
ds.Tables[0].Columns.Add("ID");
ds.Tables[0].Rows.Add("Reza", "1");
ds.Tables[0].Rows.Add("Ali", "2");
ds.Tables[0].Rows.Add("Hossein", "3");
comboBox1.DataSource = ds;
comboBox1.DisplayMember = "Temp.Name";
comboBox1.ValueMember = "Temp.ID";
البته اگه نظر منو بخوای استفاده از یه جدول بهتره چون اگه بخوای وضعیت جدیدی اضافه کنی در این حالت باید کد رو تغییر بدی در حالی که اگه جدول باشهفقط کافیه یه سطر جدید اضافه کنی.

hosseinsinohe
دوشنبه 12 مرداد 1388, 19:06 عصر
البته اگه نظر منو بخوای استفاده از یه جدول بهتره چون اگه بخوای وضعیت جدیدی اضافه کنی در این حالت باید کد رو تغییر بدی در حالی که اگه جدول باشهفقط کافیه یه سطر جدید اضافه کنی.

ممنون از راهنمایی خوبتون

حرف شما رو کاملا قبول دارم اما به دلیل کم تجربی فکر کردم نمی تونه کار منطقی باشه به خاطر اینکه تو برنامه ای که درست می کنم از این دست موارد زیاد هست.مثلا نوع مخاسبه حقوق(ساعتی-ماهیانه و ....)-شیفت کاری(صبح-عصر و ....)و ....

حالا اگه راههای بهتری هم هست ممنون میشم بگید و به کم درباره بهترین روش انجام این کار بحث کنید تا هم من جواب سوال رو گرفته باشم و دوستان دیگه هم استفاده کنند.

Reza_Yarahmadi
دوشنبه 12 مرداد 1388, 20:45 عصر
راه بهتر همیشه با توجه به شرایط موجود و امکانات مورد نیاز مورد ارزیابی قرار میگیره!
ولی اگه روش دیگه ای غیر از جدول و بانک میخواید ، میتونید از فایل استفاده کنید البته فایل زمانی استفاده داره که داده ها کم باشن و یا داده ها مجزا و هم سایز باشن (اندازه تمام داده ها برابر باشه).
برای همین مثال میتونید توی فایل هر سطر رو برابر متنی که قرار کاربر توی کمبو ببینه (Name) به اضافه داده ای که میخواید به ازای این متن به بانک ارسال بشه(ID). با یه جدا کننده هم (مثل Tab یا هر علامت خاص دیگه) از هم جدا کنید.
ممکنه دوستان نظرات دیگه ای هم داشته باشند ممنون میشم اگه اونها هم کمک کنند.

hosseinsinohe
دوشنبه 12 مرداد 1388, 22:54 عصر
راستی میشه یه فایل Dll درست کرد و بعد از اون DataSet ی رو گه گفته شده برای رفع این مشکل میشه درست کرد ، اونجا آماده کنیم.
بعد از اون اگه تغییری در گزینه ها به وجود بیاد ما تنها کد اون فایل dll رو تغییر بدیم؟؟؟

این بهتر از درست کردن یک جدول دز بانک نیست؟
البته این سواله

afrooz_rahmati63@yahoo.com
دوشنبه 12 مرداد 1388, 23:28 عصر
يك سري به اين لینک بزن .جوابتو خیلی راحت با یک Query پیدا می کنی.

http://barnamenevis.org/forum/showthread.php?t=171472

Reza_Yarahmadi
دوشنبه 12 مرداد 1388, 23:31 عصر
راستی میشه یه فایل Dll درست کرد و بعد از اون DataSet ی رو گه گفته شده برای رفع این مشکل میشه درست کرد ، اونجا آماده کنیم.
بعد از اون اگه تغییری در گزینه ها به وجود بیاد ما تنها کد اون فایل dll رو تغییر بدیم؟؟؟

این بهتر از درست کردن یک جدول دز بانک نیست؟
فرض کنید این برنامه رو واسه چند شرکت مشابه ساختید بعد از مدتی این شرکتها نیاز به یک وضعیت جدید دارند (روش کار شرکتها مشابه هم است) حالا بهتره توی برنامه این قابلیت رو گذاشته باشید که بشه وضعیت جدید اضافه کرد یا همه برنامه ها (dllها) رو جمع کنید ، کدش رو تغییر بدید و یه برنامه جدید تحویل بدید؟
البته چیزی که من میگم واسه حالتیه که ممکنه وضعیت جدید اضافه و یا کم بشه ، ولی اگه وضعیتها مطمئنا ثابت هستن نیازی به استفاده از بانک و یا فایل نیست.

hosseinsinohe
سه شنبه 13 مرداد 1388, 19:25 عصر
يك سري به اين لینک بزن .جوابتو خیلی راحت با یک Query پیدا می کنی.

http://barnamenevis.org/forum/showthread.php?t=171472


ممنون فکر می کنم این Query چیز جالبی باشه.

فقط به سول برای update کردن و باز گردادندن مقادیر مشکلی پیش نمی یاد؟

afrooz_rahmati63@yahoo.com
سه شنبه 13 مرداد 1388, 22:12 عصر
راستش نمي دونم شما چجوری dropdown را update مي كنيد. روشهای متفاوتی وجود داره و برای update كردن هم با یک switch مي تونيد مقدار موردنظر را به Query پاس کنید.

hosseinsinohe
چهارشنبه 14 مرداد 1388, 09:14 صبح
البته این کدی که نوشتید کد جالبیه ولی چطور میشه توی عملیات Binding در ComboBox از اون استفاده کرد؟؟؟؟


من فکر نمی کنم این کد توی این مورد کاربرد داشته باشه.

hosseinsinohe
چهارشنبه 14 مرداد 1388, 22:22 عصر
.................؟؟؟؟؟؟؟؟؟؟؟