各位高手:
          我现在是有三个下拉菜单,三个textbox,一个搜索按钮,我想是根据填选的不通进行搜索,不用存储过程一个sql语句能实现吗?          要是用程序在后台拼,实在是太多了。有没有更好的方法?
             谢谢了!

解决方案 »

  1.   

    只要能够分开得到三个下拉菜单和三个textbox的值,用一个sql语句还是能够查询出来的
    毕竟sql中也是有联合查询的么
    不过,感觉这样写出来的sql语句应该会很不好写,很累赘
      

  2.   

    呃就没其他的办法了吗?sql语句实现这么难?
      

  3.   

    用like,默认%,后台拼也一条语句搞定。
      

  4.   

    参考:
    http://www.cnblogs.com/insus/articles/1999795.html
      

  5.   

    怎么多了?StringBuilder sb = new StringBuilder();
    sb.Append(" select * from table where 1=1 ");
    if(!string.isNullorEmpty(textbox1.text))
    {
                    sb.Append(" and ....");
    }
      

  6.   

    那三个textbox是时间,怎么用like?
      

  7.   

    如果,我是选择了前两个下拉菜单和第二个输入框。其他的没有输入或选择。sql里都是and,我怎么查?还有我一个一个框判断,是很简单才判断六次。可是被判断的框不是空,可怎么保证其他的框是不是空的呢?
      

  8.   

    多条件也可以用一个存储过程 。(@cid = '-1' or charindex(@cid,cid)> 0) and 
    (@recom_1 = -1 or @recom_1=recom_1) and
    (@recom_2 = -1 or @recom_2=recom_2) 
      

  9.   

    可以使用拼接啊 sWhere = 'where 1=1 ';
    if (a.text <> '')
    {
        sWhere = sWhere + ' and XX = ' + a.text;
    }if (b.text <> '')
    {
        sWhere = sWhere + ' and XXx = ' + b.text;
    }
    .
    .
    .
    最后组合得到的条件就是你想要的
      

  10.   

     SQLBuilder  sb =new SQLBuilder();
     sb.Append("select * from table where(1=1)");
     if(this.txtbox1.text!=null&&this.txtbox1.text!="")
    {
     sb.Append("and field="+‘“this.txtbox1.text”')
    }
    .......
      

  11.   

    顶个,还有点就是dropdownlist的话,里面选选项较多用,可以在以上基础上加上  
    string strWhere = string.Empty;
    switch (int.Parse(ddlName.SelectedItem.Value))
            {
                case 1: { strWhere = " and 字段1 like '%" + tbox1.Value + "%'"; break; }
                case 2: { strWhere = " and 字段2 like '%" + tbox2.Value + "%'"; break; }
                case 3: { strWhere = " and 字段3 like '%" + tbox3.Value + "%'"; break; }
                case 4: { strWhere = " and 字段4 like '%" + tbox4.Value + "%'"; break; }
                case 5: { strWhere = " and 字段5 like '%" + tbox5.Value + "%'"; break; }
                 break;
             }
            return strWhere;
      

  12.   

    用LINQ 逐步筛选之,很方便
      

  13.   

      那么定义一个字符串 string sql="";
    如果第一个文本框不为空那么
    sql=sql+下拉列表的值+文本框的值
    如果第二个文本框不为空 那么
    sql=sql+下拉列表的值+文本框的值
    如果第三个文本框不为空 那么
    sql=sql+下拉列表的值+文本框的值
    sql的最后结果是一个查询语句的条件部分,
    并上前边的查表,
    select * from table where +sql 应该可以搞定
      

  14.   


    我之前做过类似的查询功能,根据不同的条件去匹配数据,给用户提供了很多的选择项,用户具体选择哪一些条件我们根本不能确定,所以都是传入的一些变量,
    直接一条SQL语句就可以了,整个条件全图是变量,我记得我QQ空间里面有一篇日志的,你可以留一个邮箱给我,晚上我下班了发给你。
      

  15.   

    用户从下拉列表里面选择条件,选择了条件之后自动填充到对应的文本框,最后整理为一个变量传入SQL.