这个问题与c#和SQL Server都有关。
我想知道如何进行自定义搜索。
我有三张桌子
客户
CusId, Name, Telephone
员工
EmpId, Name, Job
预约
AppId, Date, EmpId, CusId
我的C#表单有三个复选框。我想根据检查的值找到数据。
例如:当选择了客户,员工,应用程序复选框时,我希望根据所有这三个值查找数据。
当只选择两个或一个时,我想根据这些选择进行搜索。这里将共有6种组合。
当我将这些值作为参数传递给存储过程时,如何编写查询以获得正确的结果。
我是否必须编写6个存储过程才能获得结果?
有没有方法可以轻松完成这项工作?
请帮我解决这个问题。提前谢谢。
答案 0 :(得分:1)
使用如下的查询(将在存储过程中建议):
-- Parameters to a SQL sproc
DECLARE @CustID INT, @EmpID INT, @AppointmentID INT
-- Set Parameters here for testing
SELECT *
FROM Appointment as A
INNER JOIN Employee as E
ON E.EmpID = A.EmpId
INNER JOIN Customer as C
ON C.CusID = A.CusID
WHERE (@CustID IS NULL OR C.CUsID = @CustID)
AND (@EmpID IS NULL OR E.EmpID = @EmpID)
AND (@AppointmentID IS NULL OR A.AppID = @AppointmentID)
然后,您需要相应地传入参数,如果选择了ID,则为null;如果不对某个项目进行过滤,则为null。