大家在做多条件的搜索时,最常用的办法是用
if
else
里面嵌套很多个。
当有五六个以上条件时,可以说写的直接崩溃了。
现在给大家介绍一个经典的拼接写法
string sql = "select * from zhiyuan";
List<string> listsql = new List<string>();
List<SqlParameter> list = new List<SqlParameter>();
listsql.Add(" pr between @pr1 and @pr2 ");
list.Add(new SqlParameter("@pr1", comboBox1.Text));
list.Add(new SqlParameter("@pr2", comboBox2.Text));
if (textBox1.Text.Trim() != "")
{
listsql.Add(" bdsl>@bdsl ");
list.Add(new SqlParameter("@bdsl", textBox1.Text.Trim()));
}
if (textBox2.Text.Trim() != "")
{
listsql.Add(" wl<@wl ");
list.Add(new SqlParameter("@wl", textBox2.Text.Trim()));
}
if (listsql.Count > 0)
{
sql += " where " +string.Join("and",listsql.ToArray());
SqlParameter[] pam = list.ToArray();
}
觉得有用的,请回贴。谢谢。