PDA

View Full Version : ایجاد دستور select بر اساس انتخابهای درون treeview



irana8
چهارشنبه 19 شهریور 1393, 10:13 صبح
با سلام
من برنامه ای دارم که از یک treeview برای مشخص کردن واحد های اداره استفاده کردم.حالا میخام یه کوئری جستجو بنویسم که اگه نود همکاران اداری انتخاب شده باشه همکاران اداری select بشن و اگه ترکیبی انتخاب شده باشن ترکیب انها جستجو بشه.چون تعداد نود ها ثابت نیست در باره الگوریتم جستجو به مشکل بر خوردم ممنون میشم از دوستان اگر راهنمایی کنند.ممنون

ro3vayedel
چهارشنبه 19 شهریور 1393, 17:43 عصر
خوب توی دیتابیس فیلد ParentID درست کنید یعنی یک فیلد ID از نوع کلید ویک فیلد ParentID و مقدار ریشه های اصلی رو 0 قرار بدید... و ParentID زیر مجموعه ها رو با مقدار آیدی ریشه مربوطه ثبت کنید...
بعد راحت میتونید select انجام بدید...
select Name
from tblName
where parentID=@Parent

و توی selection آبجکتت مقدار Parent@ رو مقداردهی کن...

ro3vayedel
چهارشنبه 19 شهریور 1393, 17:45 عصر
راستی اگر ترکیب چند شرط دارید براحتی انجام میشه مثلا نام اونهایی رو بیار که ParentIDMeghdar1 = 0 یا برابر مقدار ParentIDMeghdar2

irana8
پنج شنبه 20 شهریور 1393, 09:08 صبح
راستی اگر ترکیب چند شرط دارید براحتی انجام میشه مثلا نام اونهایی رو بیار که ParentIDMeghdar1 = 0 یا برابر مقدار ParentIDMeghdar2
مساله اینه که من نمی دونم که کاربر چه ایتم هایی رو انتخاب خواهدکرد.یکی.. دوتا...چند تا..که بر اساس اون تعداد پارامتر شرط جستجو را تعیین کنم.

ro3vayedel
شنبه 22 شهریور 1393, 13:21 عصر
مساله اینه که من نمی دونم که کاربر چه ایتم هایی رو انتخاب خواهدکرد.یکی.. دوتا...چند تا..که بر اساس اون تعداد پارامتر شرط جستجو را تعیین کنم.

خوب توی کوئری مقدار متغییر رو برابر @Meghdar قرار بده یعنی اینکه بعدا پارامتر مقدار دهی میشه و وزمانی که دستور select رو فراخوانی میکنی مقدار همون متغیر رو برابر انتخاب کاربر قرار بده...
(فکر کنم منظورتون رو اشتباه متوجه شدم چونکه شما که با treeView درحال کارکردن هستید مطمئنا اینها رو بهتر از من میدونید...خلاصه خواستم کمکی کرده باشم...)
واسه تعداد انتخاب شده هم میتونی یک فیلد بدی به همه ریشه اصلی ها مقدار این فیلد A شاخه بعدی B شاخه بعدی C و همینجور بعد کوئری بزنی که این فیلد انتخاب شده در این فیلدش اگر A بود پس ریشه انتخاب شده و اگر B بود شاخه اول و ... و تعداد انتخاب ها رو هم میتونی از مجموع همین فیلد بددست بیاری مثلا من A و B ,B رو انتخاب کرده باشم مجموع این فیلدم میشه ABB شما Lenght رو بدست بیارید میشه 3تا یعنی من سه تا انتخاب کردم اولی ریشه اصلی بوده و دوتای بعد شاخه زیرمجوعه بوده و به همین ترتیب...