多个条件组合进行搜索,代码量可能比较多、杂,所以可以在判断条件的时候,将参数值保存,最后进行字符串拼接,传到DAL层。
大概有这回事,现在杨老师的课也只是听明白而已了,前面已经有很多节课程没有实践敲写代码了,功课落下了,以后需要了再补,现在没有信心去操作了。。。
List<string>whereList=newList<string>();
List<SqlParameter>paramsList=newList<SqlParameter>();
if(cbSearchByName.IsChecked==true)
{
whereList.Add("Name=@Name");
paramsList.Add(newSqlParameter("@Name",txtName.Text));
}
if(cbSearchByInDate.IsChecked==true)
{
whereList.Add("InDate>=@InDateStartandInDate<=@InDateEnd");
paramsList.Add(newSqlParameter("@InDateStart",dpInDateStart.SelectedDate));
paramsList.Add(newSqlParameter("@InDateEnd",dpInDateEnd.SelectedDate));
}
if(cbSearchByDept.IsChecked==true)
{
whereList.Add("DepartmentId=@DepartmentId");
paramsList.Add(newSqlParameter("@DepartmentId",cmbDept.SelectedValue));
}
stringwhereSql=string.Join("and",whereList);
stringsql="select*fromT_Employee";
if(whereSql.Length>0)
{
sql=sql+"where"+whereSql;
}
Employee[]result=newEmployeeDAL().Search(sql,paramsList);
datagrid.ItemsSource=result;