Click here to Skip to main content
15,892,927 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
hi
i need to make search condition with four parameter Name, serial number, all,date of birth.

i am using like this :
if(@searchtype=='Name')
begin

select * from tbluser where Name=@name
end

if(@searchtype=='serialnumber')
begin
select * from tbluser where serialnumber=@serialnumber
end
.....


i have use select * from tbluser two time, so i need use this query one time, and use above parameter in where condition how can i do this..
Posted
Comments
thursunamy 5-May-12 1:23am    
Will you send your query from C# ?

A stored procedure can be used to which the Search Type and Search Value are passed as arguments as shown below

SQL
CREATE PROCEDURE dbo.SearchData (@SearchType NVARCHAR(100), @SearchValue NVARCHAR(100))
AS
BEGIN

DECLARE @FilterExp NVARCHAR(250)
SET @FilterExp = CASE @SearchType
    WHEN 'Name' THEN 'WHERE Name = ''' + @SearchValue + ''''
    WHEN 'SerialNumber' THEN 'WHERE SerialNumber = '''+ @SearchValue + ''''
    WHEN 'All' THEN ' '
    END
Exec( 'SELECT * FROM tbluser ' + @FilterExp )
END


Then to call
SQL
EXEC dbo.SearchData 'Name','UserName'
 
Share this answer
 
Comments
Sandeep Mewara 5-May-12 14:34pm    
My 5!
VJ Reddy 5-May-12 20:41pm    
Thank you, Sandeep.
Use as
SQL
begin
 
select * from tbluser where Name=@name or serialnumber=@serialnumber
end
 
Share this answer
 
Comments
balongi 5-May-12 1:34am    
i have to pass one parameter from code behind, how it check that it is serial number or name
uspatel 5-May-12 2:06am    
use
select * from tbluser where Name=@name or serialnumber=@name

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900