واضح آرشیو وب فارسی:سایت ریسک: View Full Version : امكان سرچ براساس چند فيلد؟! halizadeh05-10-2007, 11:19 AMسلام من مي خوام امكان سرچ براي برنامه م بزارم با مثلاً حدود 7يا 8 تا فيلد كه جستجو براساس اون فيلدها باشه اما وارد كردن هيچكدوم از فيلدها الزامي نيست ... و هر ركوردي از جدول كه با اين مشخصات برابر بود رو نشون بده مثلاً اگه 10 ركورد با اين مشخصاتي كه كاربر تعيين كرده، برابر بود هر10 تا رو نشون بده... (برنامه هم با Asp.netو بانك اسكيوال سرور هست) hannibalLecter07-10-2007, 07:01 PMسلام من منظور دقیق تو رو نفهمیدم اما فکر کنم با این کد ها به جایی برسی . SELECT * FROM TableName WHERE FIeldName=1 این علامت * باعث میشه که که همه فیلد ها رو در نتیجه نمایش یده . اما برای زیاد کردن تعداد شرط ها از دستور زیر : SELECT * FROM TableName WHERE FielName1=1 AND FieldName2=1 ...... تا آخر و اگر هم بخواهی که تمام قیلد ها رو نمایش نده و اون ها رو محدود بکنی از دستور . SELECT FielName1,FieldName2 FROM TableName WHERE FieldName3=1 همان طور که میبینید من فقط میخام فیلد ها یک و دو رو در خروجی ببنیم اما شرط من روی فیلد سوم صورت گرفته . از این وبلاگ هم میتونی یک چیزایی بدست بیاری www.Nedkely.Blogfa.com (http://www.Nedkely.Blogfa.com) hamedvahedi07-10-2007, 09:18 PMسلام فرض مي کنم 3 تا textbox داري که بايد مقدارش با مقدار 3 فيلد در جدول برابر بشه. روشی که پيشنهاد مي کنم سودمند است. اما مي توني بهتر هم کار کني: dim qs as string="select * from tb_main where (1=1)" if textbox1.text<>"" then qs+="and(field 1="""+textbox1.text+""")" if textbox2.text<>"" then qs+="and(field 2="""+textbox2.text+""")" if textbox3.text<>"" then qs+="and(field 3="""+textbox3.text+""")" بعد هم این qs را اجرا کن halizadeh10-10-2007, 10:43 PMسلام ممنون از كمكتون ، من توي جدولم فيلدهايي رو دارم كه مي تونند مقادير مشخصي رو داشته باشند مثلا فيلد "foriyat " مي تونه يكي از اين سه مقدار رو داشته باشه"آني، فوري ، عادي" خب من مي خوام براي سرچ ام انتخاب براي فيلد فوريت رو با چكباكس برا كاربر بزارم مثلاً يك CheckBoxList گذاشتم اينجوري: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! يعني ميخوام اگه كاربري دوست داشت ركوردهايي رو ببينه كه فيلدشون مثلاً مقدار"آني" يا "فوري" رو داره رو پيدا كنه خب من برا اينكار اينجوري نوشته م: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! t متغيري هست كه چك مي كنه ميگه اگه چكباكس ديگري ازاين گروه انتخاب شده بود or كن وگرنه And كه اند يعني با فيلدهاي ديگه اي مثلاً درست كردم... ببينيد من توي فرمم چندين تكست باكس دارم كه اين چكباكسها با تكست باكس هاي پر شده اند ميشه اما گزينه هاي چكباكس با هم ديگه orميشه. مشكل من اينه كه من اگه بخوام ازor استفاده كنم حتماً بايد پرانتزگذاري رو خودم انجام بدم وگرنه اطلاعات اشتباه بدست مييارم.... منظورم رو با مثال شفافتر مي كنم: مثلاً من می خوام رکوردهایی که فیلد "foriyat" آنها برابر با "آنی" یا "فوری" هست و فیلد "matter" آنها برابر "تبریک" هست رو بدست بیارم، با توجه به كوئري كه گفتم نوشتم كوئري به اين شكل در ميياد: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! خب ، توی این کوئری از پرانتز استفاده نشده در نتیجه کوئری یه شکل دیگه اعمال میشه یعنی؛ خروجی رکوردهایی بدست مییاد که فیلد "foriyat" اون "آنی" باشه یا فیلد"foriyat" برابر با "فوری" باشه و فیلد "matter" برابر با "تبریک" باشه یعنی بصورت خودکار به این شکل خروجی در مییاد: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! در حالیکه این مدنظر منه: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! یعنی من باید در برنامه پرانتز گذاری رو خودم انجام بدم .... ---- به نظر شما چجوري ميتونم پرانتز گذاري رو خودم انجام بدم؟؟؟ سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 327]