这种查询需要再重新创建服务和数据库的存储过程只需要在原来的查询进行筛选查询,这里的多条件查询就是在客户端拼接条件查询数据,要注意的是第一个拼接条件列里面没有 and连接起来,后面的拼接条件必须要有 and 拼接条件,否则就会报错。代码:
// 点击按钮事件 触发 多条件查询岗位信息
private void Btn_Select_XianXiGangWei(object sender, RoutedEventArgs e)
{
try
{
//初始化变量(接收条件)
string strSelect = "";
string strName = txt_Name.Text.Trim();//获取岗位名称
string QiYon = MyComboBoxItem.Text;//获取状态值
// string QiYon = MyComboBoxItem.Text;、
//所有数据都为空或特殊数据是直接查询
strSelect = "PostName like '%'+'" + strName + "'+'%'";
//因为""就相等于查询全部
if (QiYon != "全部")
{
strSelect = strSelect + "and State like '%'+'" + QiYon + "%'";
}
//获取全部数据 调用 User_SelectGangWei:服务器的服务
DataTable dtselect = myClient.User_SelectGangWei().Tables[0];
//把表格转化为数据视图
DataView dv = new DataView(dtselect);
//接收最终页面显示的数据
DataTable dt = new DataTable();
//判断是否有数据,并且筛选条件不能为空 进行筛选数据
if (dtselect.Rows.Count > 0 && strSelect != "")
{
//筛选数据
dv.RowFilter = strSelect;
dt = dv.ToTable();
}
//接受条件为空时查询全部数据
if (strSelect == "")
{
//查询全部数据
dt = dv.ToTable();
}
//绑定表格数据
dgSelectEnterprise.ItemsSource = dt.DefaultView;
}
catch (Exception)
{
throw;
}
}
效果:
其实这一种查询只能用字符串String进行拼接查询
还是写一下数据库的存储过程吧下面的Sql语句都没有Where筛选条件
--查询岗位信息 RTRIM 左去空格
IF(@type='Select_User_Station')
BEGIN
Select PostID,RTRIM(PostName) AS PostName,RTRIM(postState)
AS postState,EstablishTrim,RevampTrim,
RTRIM(case when State='true' then '启用' else '停用' end)
AS State From BS_Station
END