string strSql="SELECT * FROM Trade ";
string strWhere="";
if(this.txtCardID.Text!="")
{
strWhere=" WHERE (CardID='"+this.txtCardID.Text.Trim()+"')";
}
if(this.txtStartTime.Text!="")
{
if(strWhere=="")
{
strWhere+="WHERE (TradeDate>='"+this.txtStartTime.Text.Trim()+"')";
}
else
{
strWhere+=" AND (TradeDate>='"+this.txtStartTime.Text.Trim()+"')";
}
}
if(this.txtEndTime.Text!="")
{
if(strWhere=="")
{
strWhere+="WHERE (TradeDate<='"+this.txtStartTime.Text.Trim()+"')";
}
else
{
strWhere+="AND (TradeDate<='"+this.txtStartTime.Text.Trim()+"')";
}
}
strSql+=strWhere;

解决方案 »

  1.   

    StringBuffer sql=new StringBuffer("select * from table where 1=1 ");
    if(txt1==null||txt1.equals("")){
        txt1=" and id='"+txt1+"'";
        sql.append(txt1);
    }
    if(txt2==null||txt2.equals("")){
        txt2=" and name='"+txt2+"'";
        sql.append(txt3);
    }
    if(txt3==null||txt3.equals("")){
        txt3=" and address='"+txt3+"'";
        sql.append(txt3);
    }
      

  2.   

    StringBuffer sql=new StringBuffer("select * from table where 1=1 ");
    if(txt1!=null&&!txt1.equals("")){
        txt1=" and id='"+txt1+"'";
        sql.append(txt1);
    }
    if(txt2!=null&&!txt2.equals("")){
        txt2=" and name='"+txt2+"'";
        sql.append(txt3);
    }
    if(txt3!=null&&!txt3.equals("")){
        txt3=" and address='"+txt3+"'";
        sql.append(txt3);
    }
      

  3.   

    String sql=
      "select * from TableName where field1 like ? and field2 like ? and field3 like ?";pst.setString(1,"%"+value1+"%");
    pst.setString(2,"%"+value2+"%");
    pst.setString(3,"%"+value3+"%");
    rs=pst.executeQuery();当然这只能针对字段类型都是字符串时