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是不能加引号的。怎么解决这个问题?或者说,怎么能够用复选框从数据库里提取相应的信息?
展开
 我来答
应笑郎04
2009-10-14 · TA获得超过1976个赞
知道小有建树答主
回答量:1397
采纳率:100%
帮助的人:656万
展开全部
呵呵
傻!!

<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]+"'"+")";
}

//呵呵 这样就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友dc81944bb
推荐于2016-02-22 · TA获得超过572个赞
知道小有建树答主
回答量:793
采纳率:0%
帮助的人:724万
展开全部
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 +")";
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
soeek
2009-10-14
知道答主
回答量:35
采纳率:0%
帮助的人:0
展开全部
有很多种方式的

提供一种 接收的c1到c5进行是否为空判断,如果为空则用一个变量替代这个空值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
leona_f
2009-10-14 · 超过30用户采纳过TA的回答
知道答主
回答量:93
采纳率:0%
帮助的人:94.6万
展开全部
弄个if语句判断一下就可以了吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式