我现在查询条件有5项,有些可以为空,帮忙写一条查询语句参考下。谢谢了!

解决方案 »

  1.   


                string sql = "select * from table where 1=1";
                if ("条件1" != null) sql += " and name='csdn' ";
                if ("条件2" != null) sql += " and sex='woman' ";
                //运用此写法,注意每一个sql+=语句""和and之间的空格,
      

  2.   

       笨了点。但是 5个嘛 也可以这样写的。哈哈哈。  更多的时候 还是不建议这个写法。选择更好的方式。
      //打开与数据库的连接
            SqlConnection myConn = CC.GetConnection();
            myConn.Open();
            //查询符合搜索条件的字符串
            string sqlStr = "select * from tb_files";
            if (this.txtFilesName.Text.Trim() != "" || ddlUD.SelectedIndex != 0 || ddlProvince.SelectedItem.Text.Trim() != "" || ddlCity.SelectedItem.Text.Trim() != "" || ddlCity.SelectedItem.Text.Trim() != "" || ddlVilliage.SelectedItem.Text.Trim() != "")
            {
                sqlStr += " where ";
                if (this.txtFilesName.Text.Trim() != "" && ddlUD.SelectedIndex == 0 && ddlProvince.SelectedItem.Text.Trim() == "" && ddlCity.SelectedItem.Text.Trim() == "" && ddlVilliage.SelectedItem.Text.Trim() == "")
                {
                    sqlStr += "fileName like'%" + this.txtFilesName.Text.Trim() + "%' ORDER BY fileid DESC";
                }
                else if (this.txtFilesName.Text.Trim() == "" && ddlUD.SelectedIndex != 0 && ddlProvince.SelectedItem.Text.Trim() == "" && ddlCity.SelectedItem.Text.Trim() == "" && ddlVilliage.SelectedItem.Text.Trim() == "")
                {
                    sqlStr += "fileUpDate= '" + this.ddlUD.SelectedValue.ToString() + "' ORDER BY fileid DESC";            }
                else if (this.txtFilesName.Text.Trim() == "" && ddlUD.SelectedIndex == 0 && ddlProvince.SelectedItem.Text.Trim() != "" && ddlCity.SelectedItem.Text.Trim() == "" && ddlVilliage.SelectedItem.Text.Trim() == "")
                {
                    sqlStr += "areaname= '" + this.ddlProvince.SelectedItem.Text.Trim().ToString() + "' ORDER BY fileid DESC";
                }
                else if (this.txtFilesName.Text.Trim() == "" && ddlUD.SelectedIndex == 0 && ddlProvince.SelectedItem.Text.Trim() == "" && ddlCity.SelectedItem.Text.Trim() != "" && ddlVilliage.SelectedItem.Text.Trim() == "")
                {
                    sqlStr += "cityname= '" + this.ddlCity.SelectedItem.Text.Trim().ToString() + "' ORDER BY fileid DESC";
                }
                else if (this.txtFilesName.Text.Trim() == "" && ddlUD.SelectedIndex == 0 && ddlProvince.SelectedItem.Text.Trim() == "" && ddlCity.SelectedItem.Text.Trim() == "" && ddlVilliage.SelectedItem.Text.Trim() != "")
                {
                    sqlStr += "provincename= '" + this.ddlVilliage.SelectedItem.Text.Trim().ToString() + "' ORDER BY fileid DESC";
                }
                else if (this.txtFilesName.Text.Trim() != "" && ddlUD.SelectedIndex == 0 && ddlProvince.SelectedItem.Text.Trim() != "" && ddlCity.SelectedItem.Text.Trim() == "" && ddlVilliage.SelectedItem.Text.Trim() == "")
                {
                    sqlStr += "fileName like'%" + this.txtFilesName.Text.Trim() + "%'";
                    sqlStr += "and areaname= '" + this.ddlProvince.SelectedItem.Text.Trim().ToString() + "' ORDER BY fileid DESC";
                }
                else if (this.txtFilesName.Text.Trim() == "" && ddlUD.SelectedIndex != 0 && ddlProvince.SelectedItem.Text.Trim() != "" && ddlCity.SelectedItem.Text.Trim() == "" && ddlVilliage.SelectedItem.Text.Trim() == "")
                {
                    sqlStr += "fileUpDate= '" + this.ddlUD.SelectedValue.ToString() + "'";
                    sqlStr += "and areaname= '" + this.ddlProvince.SelectedItem.Text.Trim().ToString() + "' ORDER BY fileid DESC";
                }
                else if (this.txtFilesName.Text.Trim() != "" && ddlUD.SelectedIndex != 0 && ddlProvince.SelectedItem.Text.Trim() == "" && ddlCity.SelectedItem.Text.Trim() == "" && ddlVilliage.SelectedItem.Text.Trim() == "")
                {                sqlStr += "fileUpDate='" + this.ddlUD.SelectedValue.ToString() + "'";
                    sqlStr += "  and fileName like'%" + this.txtFilesName.Text.Trim() + "%' ORDER BY fileid DESC";
                }
                else if (this.txtFilesName.Text.Trim() == "" && ddlUD.SelectedIndex == 0 && ddlProvince.SelectedItem.Text.Trim() != "" && ddlCity.SelectedItem.Text.Trim() != "" && ddlVilliage.SelectedItem.Text.Trim() == "")
                {                sqlStr += "areaname='" + this.ddlProvince.SelectedItem.Text.Trim().ToString() + "'";
                    sqlStr += "and cityname='" + this.ddlCity.SelectedItem.Text.Trim().ToString() + "' ORDER BY fileid DESC";
                }
                else if (this.txtFilesName.Text.Trim() == "" && ddlUD.SelectedIndex == 0 && ddlProvince.SelectedItem.Text.Trim() != "" && ddlCity.SelectedItem.Text.Trim() != "" && ddlVilliage.SelectedItem.Text.Trim() != "")
                {                sqlStr += "areaname='" + this.ddlProvince.SelectedItem.Text.Trim().ToString() + "'";
                    sqlStr += "and cityname='" + this.ddlCity.SelectedItem.Text.Trim().ToString() + "'";
                    sqlStr += "and provincename='" + this.ddlVilliage.SelectedItem.Text.Trim().ToString() + "' ORDER BY fileid DESC";
                }
                else if (this.txtFilesName.Text.Trim() == "" && ddlUD.SelectedIndex != 0 && ddlProvince.SelectedItem.Text.Trim() != "" && ddlCity.SelectedItem.Text.Trim() != "" && ddlVilliage.SelectedItem.Text.Trim() == "")
                {                sqlStr += "fileUpDate='" + this.ddlUD.SelectedValue.ToString() + "'";
                    sqlStr += "and areaname='" + this.ddlProvince.SelectedItem.Text.Trim().ToString() + "'";
                    sqlStr += "and cityname='" + this.ddlCity.SelectedItem.Text.Trim().ToString() + "' ORDER BY fileid DESC";
                }            else
                {
                    sqlStr += "fileUpDate='" + this.ddlUD.SelectedValue.ToString() + "'";
                    sqlStr += "and cityname='" + this.ddlCity.SelectedItem.Text.Trim().ToString() + "'";
                    sqlStr += "and provincename='" + this.ddlVilliage.SelectedItem.Text.Trim().ToString() + "'";
                    sqlStr += "and areaname='" + this.ddlProvince.SelectedItem.Text.Trim().ToString() + "'";
                    sqlStr += "  and fileName like'%" + this.txtFilesName.Text.Trim() + "%' ORDER BY fileid DESC";
                }
            }
            else
            {            sqlStr += " ORDER BY fileid DESC";
            }
            SqlDataAdapter dapt = new SqlDataAdapter(sqlStr, myConn);
            DataSet ds = new DataSet();
            //填充数据集
            dapt.Fill(ds, "files");
            //绑定数据控件
            this.gvFiles.DataSource = ds.Tables["files"].DefaultView;
            this.gvFiles.DataKeyNames = new string[] { "fileID" };
            this.DataBind();
            //释放占用的资源
            ds.Dispose();
            dapt.Dispose();
            myConn.Close();
      

  3.   


                string sql = "select * from table where 1=1";
                if ("条件1" != null) sql += " and name='csdn' ";
                if ("条件2" != null) sql += " and sex='woman' ";正解
      

  4.   

    谁用过这招SELECT * FORM student WHERE " + " ID = " + (ID.equals("") ? "ID" : ID)
      

  5.   


    if (this.txtCode.Text.Trim() != string.Empty)
                {
                    where += (where.Length > 0 ? "AND" : " ") + "TCARD_BATCH_ID LIKE '%" + this.txtCode.Text.Trim() + "%' ";
                }
                if (this.txtName.Text.Trim() != string.Empty)
                {
                    where += (where.Length > 0 ? "AND" : " ") + " USER_NAME LIKE '%" + this.txtName.Text.Trim() + "%'";
                }