问题描述:
UI中可供用户选择的搜索选项有三个:By EmployeeID, By Name, By Department
用户可以任意选择搜索条件,即:用户可选择的为排列组合模型,在该问题域中,最终可能情况为7种。
如果可选项继续过大,最终该排列组合型的问题集将变得非常庞大。不适合通过逻辑判识解决。
解决方案:
通过SQL语句AND,OR拼接完成解决该问题,将复杂繁琐的逻辑判识改为单纯的SQL语句。
本题 的解决方法如下:
cmd_str = "SELECT * FROM Employee_Infor WHERE ((EmployeeID BETWEEN @Min AND @Max) OR (@Min ='')) AND ((Name=@Name_Input) OR (@Name_Input = '')) AND ((Department=@Dep_Name) OR (@Dep_Name ='')) ORDER BY EmployeeID";