PDA

View Full Version : پر کردن ComboBox از بانک



raika17metal
چهارشنبه 07 اسفند 1387, 11:05 صبح
سلام دوستان من دو تا ComboBox دارم که میخوام توی یکیش نام شهر (مثلا تهران،اردبیل، مشهد و ...) و توی دیگری کدهاشون (021,0452,0511 و ...) که لیست کاملش توی بانک اکسس ذخیره شده پر بشن.
من دو تا مشکل دارم: اول اینکه نمی دونم چطوری محتویات بانک رو توی Combo بریزم. دوم اینکه میخوام این دو تا با هم مرتبط باشن یعنی وقتی مثلا کد 021 رو انتخاب می کنم توی Combo دیگری شهر تهران انتخاب بشه یعنی با هر تغییر گزینه در Combo اولی،Combo دوم هم تغییر کنه.
ممنون میشم اگه همراه با یه سورس توضیح بدید.

NewFoxStudent
چهارشنبه 07 اسفند 1387, 13:30 عصر
از خاصیت DataSource برای مرتبط کردن کامبو با بانک استفاده کنید
و از خاصیت DisplayMember برای نمایش و تغییر مقادیر

raika17metal
چهارشنبه 07 اسفند 1387, 17:03 عصر
ممکنه یه نمونه سورس بذارید؟

Keramatifar
چهارشنبه 07 اسفند 1387, 17:15 عصر
دوست عزیز
شما می تونی Table مورد نظرت رو بعنوان Datasource به ComboBox بدی بعد فیلد نام شهرها رو بعنوان DataTextField و فیلد کدهاتو بعنوان DataValueField بهش بدی. وقتی DataSource رو بهش میدی هموجا بصورت ویژوال می تونی این Property ها رو هم تنظیم کنی

programmable
یک شنبه 02 فروردین 1388, 23:08 عصر
خوب شما رو فرمت یه کنترل BindingSource میزاری . قبلش یه Typed DataSet به چروژه ات اضافه کن و اون جدولی رو که میخوای توی کمبو باکس و اون یکی کنترل از اطلاعات اون اضافه کنی بیار تو این دیتا ست . طبعا TableAdapter اون رو هم خواهی داشت . بعد یه نمونه از دیتا ست و TableAdapter اون جدول که بعد از Build project توی Tools داری رو به فرمت اضافه کن . خاصیت DataSource فرم رو برابر دیتا ست و DataMember رو برابر جدول قرار بده . بعد فقط کافیه تو هر کنترلی از جمله Combo box خاصیت DataSource رو این بار برابر BindingSource فرمت و خاصیت DisplayMember رو برابر اون فیلد یا ستونی از جدول که میخوای قرار بده . با استفاده از BindingSource میتونی هر ردیفی که هستی تو تمام کنترل های Bind شده به اون Binding source مقدار های جاری رو داشته باشی . در آخر یادت باشه تو هندلر رویداد Form Load با TableAdapter جدول رو پر کنی:


TableAdapter.Fill(DataSet.Table);



سؤال من از اساتید اینه که در جاهایی که چندین هزار رکورد داریم لود شدن فرم طول میکشه ! چطور میشه این زمان رو کاهش داد ؟

ahmadr
دوشنبه 03 فروردین 1388, 00:04 صبح
سؤال من از اساتید اینه که در جاهایی که چندین هزار رکورد داریم لود شدن فرم طول میکشه ! چطور میشه این زمان رو کاهش داد ؟

چندین هزار رکورد برای لود کمی غیر معقول به نظر می رسد و تقریبا در هیچ برنامه ای این کار را نمی کنند بلکه با روشهای دیگر و فیلتر کردن تعداد رکوردها را کم می کنند.

programmable
دوشنبه 03 فروردین 1388, 00:15 صبح
چندین هزار رکورد برای لود کمی غیر معقول به نظر می رسد و تقریبا در هیچ برنامه ای این کار را نمی کنند بلکه با روشهای دیگر و فیلتر کردن تعداد رکوردها را کم می کنند.
فرمایش شما درسته ولی وقتی این 7 هزار رکورد کالا های انبار باشه که احتمال انتخاب اونها هر یک 1/7000 هست واقعا چاری ای نداریم به جز اینکه تمام لیست رو یکجا لود کنیم . میدونم که 100 درصد راهی هست که فشار رو از لود یکجای همه ی این فایل ها برداریم ولی نمیدونم چطوری . حتی از تریدینگ هم استفاده کردم ولی چون لحظه بارگذاری در کنترل زمانبر است و مجبور هستیم در ترد اصلی Application قرار دهیم باز هم تغییری نمی کند .

نکته ای که باید اشاره کنم اینه که من استفاده از Autocomplete (Suggest ) برام مهمه. یعنی میخوام تو فرم با تایپ در Combobox لیستی از کالاها ارایه بشه .
با تشکر

ahmadr
دوشنبه 03 فروردین 1388, 01:07 صبح
می تونید گروه بندی کنید :
کالاهای برقی
کالاهای خوراکی
کالاهای ...
برای هر گروه یک کد اختصاص بدهید.
کاربر بعد از انتخاب هر گروه مثلاً کالاهای برقی فقط لیست کالاهای برقی نمایش داده شود نه همه 7000 رکورد.

programmable
دوشنبه 03 فروردین 1388, 12:08 عصر
می تونید گروه بندی کنید :
کالاهای برقی
کالاهای خوراکی
کالاهای ...
برای هر گروه یک کد اختصاص بدهید.
کاربر بعد از انتخاب هر گروه مثلاً کالاهای برقی فقط لیست کالاهای برقی نمایش داده شود نه همه 7000 رکورد.
خوب این پاک کردن صورت مسأله هست . کالاهای برقی من 7000 رکورد هست . What now?
میخوام بدونم راه دیگه ای نیست با استفاده از دات نت 2؟

ahmadr
دوشنبه 03 فروردین 1388, 15:18 عصر
خوب این پاک کردن صورت مسأله هست . کالاهای برقی من 7000 رکورد هست . What now?
میخوام بدونم راه دیگه ای نیست با استفاده از دات نت 2؟

به هر حال اگر هم کالاهای برقی انبار 7000 رکورد!!! باشد باز می توان آنرا گروه بندی کرد.
مثال واضحتر اینکه اگر شخصی بخواهد شهر خود را از یک لیست انتخاب کند آیا باید برنامه نویس همه شهرهای کشور (و یا جهان) را در یک لیست باکس پر کند یا آنرا به گروههای کوچکتری مانند کشور ، استان ، شهرستان تقسیم بندی کند؟

اوبالیت به بو
دوشنبه 03 فروردین 1388, 16:07 عصر
فرمایش شما درسته ولی وقتی این 7 هزار رکورد کالا های انبار باشه که احتمال انتخاب اونها هر یک 1/7000 هست واقعا چاری ای نداریم به جز اینکه تمام لیست رو یکجا لود کنیم
:متعجب:جان؟
شما چاره اي جز گروه بندي نداريد. به هر حال هر كالايي از يك خانواده اي هستش و اون خانواده از خانواده اي ديگر. مثال خيلي خوبي زده شد:

مثال واضحتر اینکه اگر شخصی بخواهد شهر خود را از یک لیست انتخاب کند آیا باید برنامه نویس همه شهرهای کشور (و یا جهان) را در یک لیست باکس پر کند یا آنرا به گروههای کوچکتری مانند کشور ، استان ، شهرستان تقسیم بندی کند؟
مثلاً يك خودرو اول به كلاس تقسيم بندي ميشه. مثلاً كلاس GLX،SLX،E،Cو... بعد يك level مياد بالاتر با مدلي كه داره از بقيه خودرو ها متمايز ميشه. مثلاً 206SD ، 405 SLX، ....
سپس خانواده ماشين ها مثل BMW،TOYOTA و...
براي كالا هاي برقي شما هم همين طور هست: صنعتي، خانگي، اداري و ...
چيزي شبيه به تفضيل در حسابداري.

programmable
دوشنبه 03 فروردین 1388, 18:10 عصر
اول اینکه بسیار ممنونم که دوستان وقتشونو برای حل مشکل من اختصاص میدن .

نمیدونم دوستان چرا اینقدر اصرار دارن درس مهندسی نرم افزار به من بدن و در باب نرمال کردن در فاز طراحی سؤال منو مسکوت بذارن .
سؤال من فقط اینه :
آیا دات نت این امکان رو به من میده که بتونم بصورت Asynce یا هر روش دیگری (100 سطر 100 سطر یا ...) عملیات لود کردن و قرار دادن اطلاعات در کنترلی مثل کمبو باکس با قابلیت AutoComplete رو داشته باشم؟ آیا Solution برای این کار داره؟
ممنونم

alireza_s_84
پنج شنبه 06 خرداد 1389, 12:16 عصر
اول اینکه بسیار ممنونم که دوستان وقتشونو برای حل مشکل من اختصاص میدن .
نمیدونم دوستان چرا اینقدر اصرار دارن درس مهندسی نرم افزار به من بدن و در باب نرمال کردن در فاز طراحی سؤال منو مسکوت بذارن .
سؤال من فقط اینه :
آیا دات نت این امکان رو به من میده که بتونم بصورت Asynce یا هر روش دیگری (100 سطر 100 سطر یا ...) عملیات لود کردن و قرار دادن اطلاعات در کنترلی مثل کمبو باکس با قابلیت AutoComplete رو داشته باشم؟ آیا Solution برای این کار داره؟
ممنونم

این پست مال خیلی وقت پیشه ولی چون به نتیجه نرسیده بود من گفتم یک پاسخی بدم.
چه دلیل داره اگر قراره یک کالایی انتخاب بشه و تعداد کالاهای انبار ما زیاد باشه حتما از کمبو باکس استفاده بشه؟؟؟
یک باتن یا با آیکون قشنگ جستجو بذارید بعد با کلیک شدن اون یک فرم باز کنید که توش یک گرید ویو باشه و لیست تمامی کالاها (میتونید صفحه بندی کنید و فقط 100 تا 100 تا لود کنی منظورم همون ویندوزه نه وب)
با انتخاب یک آیتم شناسه اون رو به فرم اصلی برگردونید ضمنا توی همین فرم میتونید فیلدهایی برای جستجو و فیلتر بذارید و کار بسیار راحت و اصولی هم هست .
موفق باشید