PDA

View Full Version : نوشتن Query با شرط های مختلف



hamidyha
چهارشنبه 19 اردیبهشت 1386, 10:41 صبح
من می‌خواهم یک دستور Select بنویسم که ورودی اطلاعات رو از کاربر می‌گیره بنا به انتخاب کاربر در حالتهای مختلف.(تصویر ضمیمه) حالا سوال اینجاست که باید برای تک تک حالتهای مختلف دستور Select جدا نوشت یا اینکه با یک دستور Select می‌توان تمام حالتها رو در نظر گرفت(توضیح اینکه کاربر با انتخاب هر گزینه جستجو عبارت مورد نظر رو خاص تر می‌کنه)

rezaei manesh
چهارشنبه 19 اردیبهشت 1386, 11:20 صبح
1.شما یک دستور سلکت بنویس اما قسمت شرط(where) رو با توجه به انتخاب کاربر درست کن و در نهایت دستور رو اجرا کن
2 اگه می خوای از sp استفاده کنی باید به تعداد شروطی که می تونه بکار بره پارامتر درست کنی و و با انتخاب هر گزینه مقدار اون رو به عنوان پارامتر به sp ببر
اگه خواستی از پروسیجر استفاده کنی چند نمونه تو تالار اس کیو ال هست

choobin84
پنج شنبه 20 اردیبهشت 1386, 06:37 صبح
dim strsql as string="select * from soorat where "
if rbtSalYes.Checked=true
strsql+=" sal ='" cboSal.text+"' and "
endif
if chkTarikhJalase.checked=true
strsql+=" tarikh>='"txtAzTarikh.text+"' and tarikh<=' "+txtTaTarikh.text "' and "
endif
if chkSharh.check=ture
strsql+="' sharh='"+txtSharh.text+"' and "
....


در نهایت
if strsql="select * from soorat where "
strsql="select * from soorat"
else
strsql=strsql.remove(strsql.lenghth-4,4)

rezanew
شنبه 22 اردیبهشت 1386, 10:52 صبح
می تونی این اطلاعات رو به صورت پارامتری ارسال کنی و برای پارامتر ها هم توی تعیین شرط ،شرط بزاری مثلا این طوری:

Select * from main where (fname = @pfname or @pfname=NULL) AND (Lname= @Lname or @lname=NULL)
حالا اگه توبرنامت می خوای که فرضا فیلد fname توی شرط جستجو تاثیر داده بشه یه مقداری رو بهش اختصاص بده ولی اگه نمی خوای اونو برابر nothing قرار بده

maroot
سه شنبه 25 اردیبهشت 1386, 00:47 صبح
سلام
یه راه ساده تر و کم کد ترش اینکه که به برای هر شرط یک رشته تخصیص بدی که شرط sql درونش باشه و در پایان قبل از دستور select آنها را به اضافه دستور and یا or به هم بچسبونی، یعنی چیزی شبیه به کد آقا/خانم چوبین فقط با این تقاوت که همه در انتها به هم join می شوند.