建议直接拼接sql字符串,比如:
sql="select * from table1 where aa=1"
....
if (...)
sql2="and bb=2"
.....
sql=sql+sql2
这样写是至少有一个已知条件,也可以是至少有一个任意条件,思路是一样的,代码比上面的稍微复杂点。

解决方案 »

  1.   

    几个textbox作为查询选项,
    怎样使不输入任何信息的项无效
    SELECT FROM 表 where 项1=@项1 and 项2=@项2
    为什么使一项等于"%"查询不到?
    ==========================================================
    如果textbox为空,直接去掉该textbox相关的判断StringBuilder strsql=new StringBuilder("SELECT FROM 表 where 1=1 ");
    if (textbox1.text!="")
    {
      strsql.Append("and 项1=@项1 ");
    }
      

  2.   

    第一,'%' 只能用于 like 运算符,对于=运算符不起作用.
    第二,最好使用传参数的方法,虽然烦一点,但可以防止非法字符问题,而且,可以免去程序SQL漏洞