PDA

View Full Version : سوال: کویری جستجوی چند پارامتر



bastakboys
سه شنبه 24 شهریور 1388, 15:57 عصر
قضیه: من یک کویری نوشتم که در دیتا گرید من را با چند فیلتر همزمان پر کند
مثال: مثلا نام شخص :"" و بین تاریخ : "" و ""
وقتی من هر سه پارامتر را میدم مشکلی نیست

مشکل : وقتی من یکی از پارامتر ها را نمی دهم دیتا گرید خالی به من می دهد

درخواست : من چطوری کویری را بنویسم که در موقع فرا خونی بهش بگویم که از کدوم پارامتر استفاده کند یا از تلفیق چه پارامتر هایی

omid_reza
سه شنبه 24 شهریور 1388, 16:11 عصر
دوست عزیز من نمونه ای از کارهای خودم را برات می گذارم اگر یک نگاه دقیقی بندازی متوجه می شوی
در ضمن خیلی از برنامه نویسان از این به این آسانی استفاده نمی کنند
اگر مشکلی داشتی بهم ایمیل بزن small_engineer2008@yahoo.com
من این کد را در رویه در sql با ارسال پارامتر استفاده می کنم و روشی بسیار عالی می باشد :
-----------------------------------------------------------------------------------------------
SELECT dbo.Film.ID_Film, dbo.Film.Pish_Code, dbo.Film.DateSave, dbo.Film.Sal_Toleed, dbo.Film.Name_Film, dbo.Film.Type_Film, dbo.Film.ID_Group, dbo.Film.ID_Subject,
dbo.Film.Kargardan, dbo.Film.Nevisandeh, dbo.Film.Bazigaran, dbo.Film.Number_sale, dbo.Film.Number_Ejareh, dbo.Film.PriceForsale, dbo.Film.PriceForEjareh,
dbo.Film.Price_Kharid, dbo.Film.Kholase_Dastan, dbo.Film.Discription, dbo.[Group].Name_Group, dbo.ListType.NameType, dbo.Subject.NameSubject
FROM dbo.Film LEFT OUTER JOIN
dbo.ListType ON dbo.Film.Type_Film = dbo.ListType.ID_P_Type LEFT OUTER JOIN
dbo.Subject ON dbo.Film.ID_Subject = dbo.Subject.ID_P_Subject LEFT OUTER JOIN
dbo.[Group] ON dbo.Film.ID_Group = dbo.[Group].ID_P_Group
where
( (dbo.Film.ID_Film = @ID_Film)or (@ID_Film is null)) and ( (dbo.Film.ID_Subject = @ID_Subject) or (@ID_Subject is null )) and
((dbo.Film.Name_Film like N''+@Name_Film+'%') or (@Name_Film is null))
and ( (dbo.Film.ID_Group = @ID_Group) or (@ID_Group is null)) and ((dbo.Film.Type_Film =@Type_Film) or (@Type_Film is null))
and ((dbo.Film.Kargardan LIKE N''+@Kargardan+'%') or (@Kargardan is null)) and ( (dbo.Film.Bazigaran LIKE N''+@Bazigaran+'') or (@Bazigaran is null))
and ((@T_DateS>=DateSave) or (@T_DateS is null)) and ((@T_DateF < DateSave) or (@T_DateF is null))

bastakboys
سه شنبه 24 شهریور 1388, 16:50 عصر
من چطوری این کوئری را استفاده کنم که فیلد FkName اگر خالی بود مشکلی نباشه


SELECT FkID, FkName, FkTar, FkMab, FkShomareh
FROM FaktorKharid
WHERE (FkTar >= ?) AND (FkTar <= ?) AND (FkName = ?) OR
(FkName IS NULL)