java,关于复选框的问题
<p>收费项目:<inputtype="checkbox"name="C1"value="A">开户费<inputtype="checkbox"name="C2"valu...
<p>收费项目:<input type="checkbox" name="C1" value="A" >开户费
<input type="checkbox" name="C2" value="B">漫游费 <input type="checkbox" name="C" value="C3">押金
<input type="checkbox" name="C4" value="D" >入网费 <input type="checkbox" name="C5" value="E" >选号费</p>
<p><input type="submit" value="提交" name="B1"><input type="reset" value="全部重写" name="B2"></p>
============================================================
选择要设置的费用
选择费用后进入servlet界面
于是有:
String C1=request.getParameter("C1");
String C2=request.getParameter("C2");
String C3=request.getParameter("C3");
String C4=request.getParameter("C4");
String C5=request.getParameter("C5");
========================================================
要根据C1或其他字符来从数据库里提取相应的值
于是有 sql语句:
String sql="select * from TCharge where TCharge_Code = '"+C1+"' or TCharge_Code='"+C2+"' or TCharge_Code"+
C3+"' or TCharge_Code='"+C4+"' or TCharge_Code = '"+C5+"'";
============================================================
问题就在于C1,C2,C3,C4,C5中必然有null,但用上述语句就会出现问题。例如C1=NULL,则sql语句中就会出现TCharge_Code=‘null’的情况。但是orcal里null是不能加引号的。怎么解决这个问题?或者说,怎么能够用复选框从数据库里提取相应的信息? 展开
<input type="checkbox" name="C2" value="B">漫游费 <input type="checkbox" name="C" value="C3">押金
<input type="checkbox" name="C4" value="D" >入网费 <input type="checkbox" name="C5" value="E" >选号费</p>
<p><input type="submit" value="提交" name="B1"><input type="reset" value="全部重写" name="B2"></p>
============================================================
选择要设置的费用
选择费用后进入servlet界面
于是有:
String C1=request.getParameter("C1");
String C2=request.getParameter("C2");
String C3=request.getParameter("C3");
String C4=request.getParameter("C4");
String C5=request.getParameter("C5");
========================================================
要根据C1或其他字符来从数据库里提取相应的值
于是有 sql语句:
String sql="select * from TCharge where TCharge_Code = '"+C1+"' or TCharge_Code='"+C2+"' or TCharge_Code"+
C3+"' or TCharge_Code='"+C4+"' or TCharge_Code = '"+C5+"'";
============================================================
问题就在于C1,C2,C3,C4,C5中必然有null,但用上述语句就会出现问题。例如C1=NULL,则sql语句中就会出现TCharge_Code=‘null’的情况。但是orcal里null是不能加引号的。怎么解决这个问题?或者说,怎么能够用复选框从数据库里提取相应的信息? 展开
4个回答
展开全部
呵呵
傻!!
<p>收费项目:<input type="checkbox" name="C" value="A" >开户费
<input type="checkbox" name="C" value="B">漫游费 <input type="checkbox" name="C" value="C">押金
<input type="checkbox" name="C" value="D" >入网费 <input type="checkbox" name="C" value="E" >选号费</p>
<p><input type="submit" value="提交" name="B1"><input type="reset" value="全部重写" name="B2"></p>
//首先将 5个checkbox的name 都设置成一样
//然后再取选中的值
String C[] =request.getParametervalues("C");
String sql="select * from TCharge where TCharge_Code in (";
for(int i=0;i<C.length;i++)
{
if(i!= C.length-1)
sql+="'"C[i]+"'"+",";
else
sql+="'"C[i]+"'"+")";
}
//呵呵 这样就可以了
傻!!
<p>收费项目:<input type="checkbox" name="C" value="A" >开户费
<input type="checkbox" name="C" value="B">漫游费 <input type="checkbox" name="C" value="C">押金
<input type="checkbox" name="C" value="D" >入网费 <input type="checkbox" name="C" value="E" >选号费</p>
<p><input type="submit" value="提交" name="B1"><input type="reset" value="全部重写" name="B2"></p>
//首先将 5个checkbox的name 都设置成一样
//然后再取选中的值
String C[] =request.getParametervalues("C");
String sql="select * from TCharge where TCharge_Code in (";
for(int i=0;i<C.length;i++)
{
if(i!= C.length-1)
sql+="'"C[i]+"'"+",";
else
sql+="'"C[i]+"'"+")";
}
//呵呵 这样就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
String sql="select * from TCharge where TCharge_Code = '"+C1+"' or TCharge_Code='"+C2+"' or TCharge_Code"+C3+"' or TCharge_Code='"+C4+"' or TCharge_Code = '"+C5+"'";
像你这种用了多个or 的情况就可以改成 where XX in ('a','b','c','d')的这样子更好看
改成
String wheresql="";
if(C1 != null) {
wheresql= wheresql+ "'"+C1+"'" +",";
}
if(C2 != null) {
wheresql= wheresql+ "'"+C2+"'" +",";
}
//**********后面的如同,省掉
if(!wheresql..trim().equals("")){ //如果有条件存在.去掉最后一个逗号
wheresql = wheresql.subStiing(0,wheresql.length-1);
}
String sql = "select * from TCharge where TCharge_Code in ("+ wheresql +")";
像你这种用了多个or 的情况就可以改成 where XX in ('a','b','c','d')的这样子更好看
改成
String wheresql="";
if(C1 != null) {
wheresql= wheresql+ "'"+C1+"'" +",";
}
if(C2 != null) {
wheresql= wheresql+ "'"+C2+"'" +",";
}
//**********后面的如同,省掉
if(!wheresql..trim().equals("")){ //如果有条件存在.去掉最后一个逗号
wheresql = wheresql.subStiing(0,wheresql.length-1);
}
String sql = "select * from TCharge where TCharge_Code in ("+ wheresql +")";
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有很多种方式的
提供一种 接收的c1到c5进行是否为空判断,如果为空则用一个变量替代这个空值。
提供一种 接收的c1到c5进行是否为空判断,如果为空则用一个变量替代这个空值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
弄个if语句判断一下就可以了吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询