PDA

View Full Version : جستجو در تمامي گروهها



kohyar
یک شنبه 08 شهریور 1388, 08:38 صبح
سلام دوستان
اگه فرض كنيم كه كه توي يك برنامه چندين گروه كالا داشته باشيم و بخوايم كاربر بر اساس نام كالا جستجو انجام دهد ابتدا بايد كاربر نام كالا را وارد كند و بعد يك گروه را انتخاب كند تا جستجو بر اساس پارامتر ارسالي نام كالا @name و پارامتر ارسالي كد گروه @GoodsGroup انجام پذيرد
حالا مي خواهم اگر كاربر گروه كالا را نمي داند بتواند در DropDownList گزينه تمامي گروه ها را انتخاب كند. در اينصورت چه مقداري رو بايد در پارامتر @GoodsGroup ارسال كنم تا جستجو در تمامي گروه ها انجام پذيرد
البه اينم بگم من از Asp.net تحت C#.net استفاده مي كنم و براي جستجو هم از Sp در داخل اس كيو ال بهره مي گيرم.

Saber_Fatholahi
یک شنبه 08 شهریور 1388, 11:38 صبح
در مقدر پارامتر مورد نظر مثلا چک کنی اگر مقدار منفی یک بود جستجو در تمام گروه ها و اگر هر عدد دیگری بود در گروه مربوطه جستجو کند.
موفق باشی

kohyar
یک شنبه 08 شهریور 1388, 13:14 عصر
به به بچه محل من قائمشهري هستم ولي ساكن تهران
اين روش جواب نميده چون داخل Stored Procedure در داخل اس كيو ال سرور ما ابتدا مقدار پرارمتر رو برار چي بذاريم
تازه پارامتر ارسالي بايد خالي باشه تا رد داخل SP مقدار پيش فرض پارامتر بشينه داخل اون و شرط OR اجرا بشه

@goodsGroup=???
select * from goods where
((goodsGroup=???) or (goodsGroup=@goodsGroup))

خوب اگه ما در داخل پارامتر منفي يك رو براي همه گروه ها ارسال كنيم ديگه شرط اول اجرا نميشه و همچنين هيچ كالايي نيست كه كد گروه اون برابر منفي يك باشه

Saber_Fatholahi
یک شنبه 08 شهریور 1388, 13:35 عصر
به به بچه محل من قائمشهري هستم ولي ساكن تهران
اين روش جواب نميده چون داخل Stored Procedure در داخل اس كيو ال سرور ما ابتدا مقدار پرارمتر رو برار چي بذاريم
تازه پارامتر ارسالي بايد خالي باشه تا رد داخل SP مقدار پيش فرض پارامتر بشينه داخل اون و شرط OR اجرا بشه

@goodsGroup=???
select * from goods where
((goodsGroup=???) or (goodsGroup=@goodsGroup))


خوب اگه ما در داخل پارامتر منفي يك رو براي همه گروه ها ارسال كنيم ديگه شرط اول اجرا نميشه و همچنين هيچ كالايي نيست كه كد گروه اون برابر منفي يك باشه

سلام دوست من منظورم اینه


if (@groupid=-1)
begin
دستور بدون قسمت شرط
end
else
begin
دستور با قسمت شرط
end

بهنام بهمنی
یک شنبه 08 شهریور 1388, 15:55 عصر
با دستور زير بدون نياز به if اين کار انجام ميشود




SELECT *
FROM tbl1
WHERE (fld1= @p) or ('-1'=@p)

kohyar
یک شنبه 08 شهریور 1388, 19:12 عصر
آقا صابر دستت درد نكنه
جواب داد