string condition = "";
    if (TextBox2.Text != "")
      condition = condition + " sname like'" + TextBox2.Text + "%'"; 
    
    if (DropDownList1.SelectedItem.ToString() != "")
      condition = condition + "and sex='" + DropDownList1.SelectedItem + "'";  
    if (TextBox1.Text != "")
      condition = condition + "and sno='" + TextBox1.Text + "'";
    if (TextBox3.Text != "" && TextBox4.Text != "")
        condition = condition + "and age>='" + TextBox3.Text + "'and age<='" + TextBox3.Text + "'";        Response.Write(condition);
        string sql = "select * from s where" + condition;
        Response.Write(sql);
这个是四个条件的组合查询,要怎么加代码才能让三个条件查询和四个条件查询并存??
SQL

解决方案 »

  1.   

    并存?你可以使用or啊。
    string sql = "select * from s where 第四个条件 or (" + condition + ")";
      

  2.   

    这个不就是拼凑SQL语句嘛,建议使用StringBuilder来操作。
    using System.Text;StringBuilder sb = new StringBuilder();
    if (TextBox1.Text != "")
    {
       sb.Append(" and sno='" + TextBox1.Text + "' ");
    }
    if(TextBox2.Text != "")
    {
        sb.Append(" sname like '" + TextBox2.Text + "%' ");
    }
    if(DropDownList1.SelectedItem.ToString() != "")
    {
        sb.Append(" and sex='" + DropDownList1.SelectedItem.Text + "' ");
    }
    if(TextBox3.Text != "")
    {
        sb.Append(" and age>='" + TextBox3.Text + "' ");
    }
    if(TextBox4.Text != "")
    {
        sb.Append(" and age<='" + TextBox4.Text + "' ");
    }
    Response.Write(sb.ToString());
    string sql = "select * from s where 1=1 " + sb.ToString();
    Response.Write(sql);
      

  3.   

    少了个andusing System.Text;
     
    StringBuilder sb = new StringBuilder();
    if (TextBox1.Text != "")
    {
       sb.Append(" and sno='" + TextBox1.Text + "' ");
    }
    if(TextBox2.Text != "")
    {
        sb.Append(" and sname like '" + TextBox2.Text + "%' ");
    }
    if(DropDownList1.SelectedItem.ToString() != "")
    {
        sb.Append(" and sex='" + DropDownList1.SelectedItem.Text + "' ");
    }
    if(TextBox3.Text != "")
    {
        sb.Append(" and age>='" + TextBox3.Text + "' ");
    }
    if(TextBox4.Text != "")
    {
        sb.Append(" and age<='" + TextBox4.Text + "' ");
    }
    Response.Write(sb.ToString());
    string sql = "select * from s where 1=1 " + sb.ToString();
    Response.Write(sql);
      

  4.   

    Refer:
    http://www.cnblogs.com/insus/archive/2011/03/30/1999795.htmlsee also:
    http://www.cnblogs.com/insus/archive/2013/04/06/3002054.html