只有第一个和第二个if时,两个条件任选一个都可以,但是加了第三个if,strSQL语句就变得只能同时查询两个条件不能单独只查一个了,为什么会这样呢?
if( request.getParameter("Lib") != null && request.getParameter("Capacity")=="")
{strSQL =strSQL + "where SpaceLibrary = '" + strLib + "'";}
if( request.getParameter("Lib") =="" && request.getParameter("Capacity")!=null)
{strSQL =strSQL + "where SpaceCap = '" + strCap + "'";}
if( request.getParameter("Lib")!=null && request.getParameter("Capacity")!=null)
{strSQL =strSQL + "where SpaceCap = '" + strCap + "' and SpaceLibrary = '" + strLib + "'";}
if( request.getParameter("Lib") != null && request.getParameter("Capacity")=="")
{strSQL =strSQL + "where SpaceLibrary = '" + strLib + "'";}
if( request.getParameter("Lib") =="" && request.getParameter("Capacity")!=null)
{strSQL =strSQL + "where SpaceCap = '" + strCap + "'";}
if( request.getParameter("Lib")!=null && request.getParameter("Capacity")!=null)
{strSQL =strSQL + "where SpaceCap = '" + strCap + "' and SpaceLibrary = '" + strLib + "'";}
if( request.getParameter("Lib") != null && request.getParameter("Capacity")=="")
{
strSQL =strSQL + " and SpaceLibrary = '" + strLib + "'";
}
if( request.getParameter("Lib") =="" && request.getParameter("Capacity")!=null)
{
strSQL =strSQL + " and SpaceCap = '" + strCap + "'";
}
另一种是从新声明一个字符串用来生成条件,判断完毕后将新字符串附加到strSQL上string condition = string.Empty;
if( request.getParameter("Lib") != null && request.getParameter("Capacity")=="")
{
condition = " where SpaceLibrary = '" + strLib + "'";
}
if( request.getParameter("Lib") =="" && request.getParameter("Capacity")!=null)
{
strSQL = (string.IsNullOrEmpty(condition)?" where":" and") + " SpaceCap = '" + strCap + "'";
}
strSQL = strSQL + condition