I already have a dynamic sql resolution for this, but I want to get away from using dynamic sql.
I have a search page (aspx) where you can enter a first name, last name, ssn and select a department from a drop down. I am using a stored procedure to return the results. Here is my code and it works fine.
It also accepts an Integer to determine what field to use when sorting. What I can't seem to figure out is how to pass in a value so that my SP knows to sort Asc or Desc.
I have a search page (aspx) where you can enter a first name, last name, ssn and select a department from a drop down. I am using a stored procedure to return the results. Here is my code and it works fine.
Code:
CREATE PROCEDURE dbo.GetClients @FirstName Varchar(20), @LastName Varchar(30), @SSN Varchar(11), @DepartmentID Int, @Order Int
AS
If @DepartmentID <> 0
Select * From Clients
Left Join (Select DepartmentID, DepartmentName From Departments) Departments On Clients.DepartmentID = Departments.DepartmentID
Where Clients.FirstName Like '%' + @FirstName + '%' And Clients.LastName Like '%' + @LastName + '%' And Clients.SSN Like '%' + @SSN + '%' And Department.DepartmentID = @DepartmentID
Order By
Case When @Order = 0 Then FirstName
When @Order = 1 Then LastName
When @Order = 2 Then SSN
When @Order = 3 Then DepartmentName
End
Else
Select * From Clients
Left Join (Select DepartmentID, DepartmentName From Departments) Departments On Clients.DepartmentID = Departments.DepartmentID
Where Clients.FirstName Like '%' + @FirstName + '%' And Clients.LastName Like '%' + @LastName + '%' And Clients.SSN Like '%' + @SSN + '%'
Order By
Case When @Order = 0 Then FirstName
When @Order = 1 Then LastName
When @Order = 2 Then SSN
When @Order = 3 Then DepartmentName
End
GO
It also accepts an Integer to determine what field to use when sorting. What I can't seem to figure out is how to pass in a value so that my SP knows to sort Asc or Desc.