请问大家是如何设置查询按钮的后台代码的!如果我设置我会首先这样做
if (textBox1.Text.Trim() != "" && textBox2.Text.Trim() != "" && textBox3.Text.Trim() != "" && textBox4.Text.Trim() != "" && textBox5.Text.Trim() != "")用IF一个个判断是否为空,然后在不为空进行where匹配进而select出来。
那样组合起来我觉得工程貌似很大哦请问有没有一些简单的方法。

解决方案 »

  1.   

    string sql="where 1=1 ";
    if (textBox1.Text.Trim() != "")
       sql+=" and 条件1='"+textBox1.Text.Trim()+"'";
    if (textBox2.Text.Trim() != "")
       sql+=" and 条件1='"+textBox1.Text.Trim()+"'";
    ...
      

  2.   

    一个一个判断拼SQL也可以啊。
    比如:
    if (!String.IsNullOrEmpty(ddlXQ.SelectedValue.Trim()))
            {
                sbWhere.Append("XSHCHJB.XQB_RowID=" + ddlXQ.SelectedValue.Trim() + " and ");
            }最后加个1=1然后加order by就行了,方法很多。看习惯了。
      

  3.   

    请问where 1=1有什么用的?
      

  4.   

    1=1不能放在最后吗?为了让最后一个and匹配,当然你也可以加个判断以and结尾截取掉也行。方法很多。个人习惯。
      

  5.   

    给你个整体的例子吧,我没说清,断章取义让你有点迷茫。public override void BeforeSelect(object sender, ObjectDataSourceSelectingEventArgs e)
        {
            base.BeforeSelect(sender, e);        StringBuilder sbWhere = new StringBuilder();        if (!String.IsNullOrEmpty(ddlXQ.SelectedValue.Trim()))
            {
                sbWhere.Append("XSHCHJB.XQB_RowID=" + ddlXQ.SelectedValue.Trim() + " and ");
            }
            if (!String.IsNullOrEmpty(ddlLX.SelectedValue.Trim()))
            {
                sbWhere.Append("XSHCHJB.KSHLXB_RowID=" + ddlLX.SelectedValue.Trim() + " and ");
            }
            if (!String.IsNullOrEmpty(ddlKM.SelectedValue.Trim()))
            {
                sbWhere.Append("XSHCHJB.KMB_RowID=" + ddlKM.SelectedValue.Trim() + " and ");
            }        sbWhere.Append("XSHCHJB.XSHXXB_RowID=" + PageBase_XSHID.Trim() + " and ");        e.InputParameters["strWhere"] = sbWhere.ToString() + "1=1 order by XSHCHJB.XQB_RowID, XSHCHJB.KSHLXB_RowID, XSHCHJB.KMB_RowID";
        }
      

  6.   

    1楼正确..1=1就是为了后面AND的匹配所定义的..