先看一下界面: 这五个条件之间是并且关系 输入的查询条件可以是一个,两个,三个,四个,五个 但是不能为空. 话不多说, 上代码: string ddlvalue = this.txt_projectno.Text; string txt1 = this.txt_InterviewerNo.Text; string txt2 = this.txt_Name.Text; string ddlvalue2 = this.ddl_CostName.SelectedValue; string txt3 = this.txt_Paydate.Text; string sql; if (ddlvalue == "" && ddlvalue2 == "0" && txt1 == "" && txt2 == "" && txt3 == "") { ScriptManager.RegisterClientScriptBlock(UpdatePanel1, typeof(UpdatePanel), "", "alert('请输入至少一个查询条件!')", true); } else { sql = "select ProjectPay.PPid,ProjectPay.ProjectNo,ProjectPay.InterviewerNo,InterviewerInformation.InterviewerName,ProjectPay.CostName,ProjectPay.Number,ProjectPay.Price, ProjectPay.Allowance,ProjectPay.Reward,ProjectPay.Deduct,ProjectPay.Total,ProjectPay.Paydate,ProjectPay.Bak from ProjectPay left outer join InterviewerInformation on ProjectPay .InterviewerNo=InterviewerInformation.InterviewerNo where "; if (ddlvalue != "") { sql += "ProjectPay.ProjectNo='" + ddlvalue + "' and "; } if (txt1 != "") { sql += "ProjectPay.InterviewerNo='" + txt1 + "' and "; } if (txt2 != "") { sql += "InterviewerInformation.InterviewerName='" + txt2 + "' and "; } if (ddlvalue2 != "0") { sql += "ProjectPay.CostName='" + ddlvalue2 + "' and "; } if (txt3 != "") { sql += "ProjectPay.Paydate='" + txt3 + "' and "; } sql.Trim(); int n = sql.Length; string Newsql = sql.Substring(0, n - 4); DataSet ds = DbHelperSQL.Query(Newsql); this.GridView1.DataSource = ds; this.GridView1.DataBind(); 上面用到了数据库操作类. 希望对各位有点帮助!!