PDA

View Full Version : سوال: نحوه تکمیل شرط Where به صورت پارامتریک



sqlking
یک شنبه 16 آبان 1389, 15:29 عصر
سلام من در حال نوشتن يه برنامه براي گرفتن انواع گزارشات از يه ديتابيس بزرگ هستم.قسمت اول برنامه با استفاده از combo هاي مختلف محدوده گزارش رو طبق نظر كاربر فيلتر ميكنه(مثلا تعداد فروش خودروي 206 در تهران) و قسمت دوم با استفاده از combo هاي مختلف نوع گزارش رو به تفكيك فيلدهاي مختلف تعيين ميكنه (مثلا به تفكيك رنگ، تيپ،زمان و ...) .براي اينكار من يه string درست كردم كه مرحله به مرحله value هاي combo ها رو ميخونه و دستور select رو كامل ميكنه .اما با توجه به تنوع فيلدها اوضاع خيلي پيچيده شده و ديگه موندم توش:گریه:.به يه دوستام گفتم اين جوري نوشتم جواب داد "خاااك! بايد sp مينوشتي براش" حالا لطفا بگيد روش استاندارد براي اين كار چيه؟روش ساده تري واسه اينكار وجود داره؟بايد sp مينوشتم؟ خييلي ممنونم

Sk1900n3
یک شنبه 16 آبان 1389, 15:53 عصر
دوست عزیز سلام
من واقعا منظورتون رو نفهمیدم چی هست
ولی به نظرم منظورتون اینکه میخواین شرط های جلو where رو تکمیل کنید.
واسه اینکار به این صورت عمل کنید
Cr شرط جلو Where هست

string Cr="1=1"; // shart hame field ha

حالا اگه میخواین اطلاعات یه جدول رو بر اساس مقدار کمبوباکس فیلتر کنید

Cr=Cr+" And Field1= "+combobox1.text;

sqlking
یک شنبه 16 آبان 1389, 16:09 عصر
ممنون از پاسختون، بله منظورم تكميل where هستش و از همين روشي كه فرمودين استفاده كردم ولي خيييلي پيچيده شده اين آخريه، دنبال روش ساده تري هستم مثلا به قول دوستم با sp يا ...

حمیدرضاصادقیان
یک شنبه 16 آبان 1389, 16:27 عصر
سلام. قبل از هرچیز توجه کنید عنوان رو درست انتخاب کنید.این دفعه اصلاح کردم ،دفعه بعد حذف خواهد شد.

ببینید به این روش شما میگن Dynamic Query و روشهای گوناگونی میتونید براش بنویسید.مثلا اگر sp نوشتید باید پارامتر پاس بدید بعد در داخل اون با توجه به نوع پارامتر ، شرط Where رو ساخته و با استفاده از sp_executesql اونو اجرا کنید.یک راهش همینی هست که خود شما دارید انجام میدید.