PDA

View Full Version : بهترین روش انتخاب افراد با گزینه های متفاوت



rezaei manesh
شنبه 09 تیر 1386, 09:23 صبح
سلام
من باید فرمی درست کنم که کاربر بتونه هر جور که می خواد افراد رو سریعاً از اون انتخاب کنه(مثلا بتونه همه افرادی که دارای قسمت خاصی هستند رو انتخاب کنه بعد از اونا چند نفر رو حذف کنه و بره همه افرادی که دارای گروه خاصی هستند رو هم انتخاب کنه و...) تعداد افراد هم زیر 1000 هست که البته معمولا حدود 200 یا 300 نفر انتخاب می شند.
یعنی باید در نهایت کد افراد رو در شرط بیارم اما مثلا آیا منطقی هست که من 3000 تا کد در یک شرط بیارم؟حالا بعداً هی باید این سلکت رو با سلکت های دیگه استفاده کنم و..
یه راهی که الان به ذهنم می رسه اینه که من با زدن هر گزینه ای افراد موجود رو در یک جدول موقت بریزم و اگه فردی رو دوباره انتخاب کرد به این جدول اضافه کنم و اگه کم کرد حذف کنم بعد از این جدول استفاده کنم
یا اینکه نه بعد از این که همه رو انتخاب کرد (همه انتخاب شده ها در یک گراید هستند که یک فیلد تیک خورده دارند در یک حلقه افراد رو به جدول موقت اضافه کنم یا این که نه بعد توسط سلکت و شرط همه کد ها رو در قسمت شرط بیارم و به جدول موقت اضافه کمنم یا اصلاً به موقت هم استفاده نکنم و...
بهترین روش چیه؟
در sql2005 و vb.net

hdv212
شنبه 09 تیر 1386, 23:24 عصر
من خیلی خوب متوجه منظورت نشدم ولی خب راه حلی که به ذهنم میرسه بهت میگم، شاید کمکت کنه :
میتونی یه Unblound DatagridViewRow به dataGridView ات اضافه کنی و بعد از اینکه مثلا کاربر بعضی ها رو تیک زد، اونا را وارد DataTable کنی یا از همون دیتاگریدت باشرط اینکه مثلا اون سلول تیک خورده باشه یا نه حذف کنی یا میتونی داخل dataTable بریزی و اونجا شرط رو بررسی کنی و نتیجه رو روی دیتابیس، Update کنی.

rezaei manesh
یک شنبه 10 تیر 1386, 08:11 صبح
خوب این مثل همین می مونه که من رکورد های دیتا گراید رو که تیک خورده برو بردارم که خوبه اما یه مشکلی که الان پیش می یاد اینه که چون برنامه تحت شبکه هستش و امکان داره که چندین کاربر از این به طور همزمان استفاده می کنند اگه بخوام یک جدول موقت به یه اسم واحد برای این کار درست کنم اختلال ایجاد می شه و.. اگه هم بخوام از اسم کاربر وارده شده استفاده کنم دیگه نمی تونم اجازه بدم که با یک نام کاربری چند نفر بتونه همزمان وارد بشه که این زیاد مطابق با میل من نیست
پس یک راه می مونه اون این که یک پیشوند داشته باشم به همراه یک شماره هربار موقع ایحاد جدول یک شماره به آخرین جدول موجود اضافه شود و اون شماره در اون کلاینت نگهداری بشه که در جای مورد نیاز استفاده بشه و...
اما اینجوری باید همیشه جداول موقت رو کنترل کنم که زیاد نشه و...

ab_ba
یک شنبه 10 تیر 1386, 08:50 صبح
میتونی به جای اینکه برای هر کاربر یک جدول منحصر ایجاد کنی یک جدول موقت داشته باشی و برای هر فرد یک فیلد منحصر به فرد در این جدول اضافه کنی

rezaei manesh
یک شنبه 10 تیر 1386, 09:03 صبح
من از این جدول برای گزارشات و ... استفاده می کنم و چون موقع ارتباط جداول دیگی می خوام از ویو استفاده کنم این جوری به مشکل بر می خورم در ضمن حجم جدول هم زیاد می شه و(نتیجه این سلکت باید با یک سلکت که فوق الاده پیچیده و طولانی است ترکیب شود و...)
البته همون سر اسمش هم مشکل دارم چون اگه اسم هم متغیر باشه باز نمی تونم از ویو استفاده کنم
مهم برام اینه که بعد از ذخیره سازی بتونم به راحتی و با بار کم به این اطلاعات دسترسی پیدا کنم و..

AminSobati
دوشنبه 11 تیر 1386, 00:10 صبح
http://www.sommarskog.se/arrays-in-sql.html