PDA

View Full Version : نمایش فیلد سرچ شده در خروجی



federrer
جمعه 25 خرداد 1386, 08:35 صبح
در یه صفحه جستجو داریم موردی که برای جستجو وارد میشه با محتویات چند تا فیلد مقایسه میشه یعنی مورد جستجو تو چند تا فیلد جستجو میشه .

با اضافه کردن پارامتر و استفاده از OR در قسمت Where کوئری مورد نظر این کار انجام میشه ولی مجبورم تمام اون فیلد هایی که جستجو میشن رو در قسمت SELECT بیارم .

برای نمایش خروجی کوئری از DataGrid استفاده کردم .

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

AminSobati
جمعه 25 خرداد 1386, 09:48 صبح
دوست عزیزم،
استفاده از OR بازده خوبی در جستجوهای Dynamic به همراه نخواهد داشت، بلکه بهتره سعی کنین Query رو بسازین. ساختن Query هم باید با در نظر گرفتن نکات فنی خواص خودش انجام بشه. این یک مثال:


use northwind
go

create proc sp1
@country varchar(20)=null,
@city varchar(20)=null
as

declare @sql nvarchar(4000)
DECLARE @Param nvarchar(500)
set @sql='select * from customers where 1=1'
set @param=N'@xcity varchar(20), @xcountry varchar(20)'

if @country is not null
set @sql=@sql+' and country=@xcountry'

if @city is not null
set @sql=@sql+' and city=@xcity'

print @sql
exec sp_executesql @sql,@param,@xcity=@city,@xcountry=@country
go


exec sp1 @country='uk',@city='london'
exec sp1 @city='spain'
exec sp1 @country='uk'
exec sp1


در این کد شما بر اساس پارامترهای ورودی میتونین متوجه بشین که کدوم فیلدها رو در Query خودتون قرار بدین