日期:2014-05-17  浏览次数:20701 次

参数传递后在SQL中引用参数报错“标识符无效”
小弟新手上路写一个简单的条件查询
用form表单post传递选择条件参数到查询的JSP中
String gsnum=request.getParameter("gsnum");
接收到参数后
直接在SQL语句中WHERE后面添加
AND GS=gsnum
报错
错误代码500  

我直接在另一个页面中直接接收参数并在页面上显示是有结果的
不能直接这样引用吗?
------最佳解决方案--------------------
字符串就用AND?GS='"+ gsnum +"'
------其他解决方案--------------------
AND (GS= '"+ (gsnum.equals("GS") ? "'' or 1 == 1" : gsnum) +"')
------其他解决方案--------------------
where后面直接加条件不用and  条件和条件之间才加and
------其他解决方案--------------------
引用:
where后面直接加条件不用and  条件和条件之间才加and


就是条件和条件之间的   WHERE后面有条件的   
我要加一条条件   所以加的AND***
------其他解决方案--------------------
楼上正解,很无语。
------其他解决方案--------------------
引用:
字符串就用AND GS='"+ gsnum +"'

感谢! 结果有了  但是还有一个问题
我原来form表单是做的一个下拉框 
<option value="GS" selected>选择所有</option>

这样我如果默认全选的话就相当于
AND GS=GS

如果按你这样改的话  默认全选这里该怎么改动呢?
------其他解决方案--------------------
if(GS="GS") sql不加and

引用:
引用:字符串就用AND GS='"+ gsnum +"'
感谢! 结果有了  但是还有一个问题
我原来form表单是做的一个下拉框 
XML/HTML code?1<option value="GS" selected>选择所有</option>
这样我如果默认全选的话就相当于XML/HTML code?1AND GS=GS
……

------其他解决方案--------------------
引用:
if(GS="GS") sql不加and

引用:引用:字符串就用AND GS='"+ gsnum +"'
感谢! 结果有了  但是还有一个问题
我原来form表单是做的一个下拉框 
XML/HTML code?1<option value="GS" selected>选择所有</opt……
上面没写好,if(GS.equal("GS")) sql不加and
------其他解决方案--------------------
感谢楼上几位  问题已经解决了
if(!gsnum.equals("")){
gsnum="'"+gsnum+"'";
}
else{
gsnum="GS";
}

我在接收参数的JSP中这样解决的