StringBuild sql=new StringBuild("select * from tb where 1=1")
if(name!=""){
sql.Append("and name like '%"+name+"%'");
}
if(sex!=""){
sql.Append("and sex like '%"+sex +"%'");
}
但是1=1对于某些数据库来说,会造成性能下降 ,改进方法如下:
List<string> wheres=new List<string>();
if(name!=""){
wheres.Add(" name like '%"+name+"%'");
}
if(sex!=""){
wheres.Add(" sex like '%"+sex +"%'");
}
...
if(wheres.count>0){
string wh=string.Join(" and " wheres.ToArray());
sql.Append("where " +wh);
}
多条件查询,使用List集合进行拼接条件
带参数的SQL语句
List<string> wheres=new List<string>(); //条件字符串
List<SqlParameter> listParameters=new List<SqlParameter>(); //条件参数
if(name!=""){
wheres.Add(" name =@name");
listParameters.Add(new SqlParameter("@name",name))
}
if(sex!=""){
wheres.Add(" sex =@sex");
listParameters.Add(new SqlParameter("@sex",sex))
}
...
if(wheres.count>0){
string wh=string.Join(" and " wheres.ToArray());
sql.Append("where " +wh);
}
//传入参数
SqlHelper.ExectueDataTable(sql.ToString(),listParameters.ToAray());
模糊查询