日期:2014-05-20  浏览次数:20713 次

jsp问题请教啊啊啊啊啊
[code=HTML][/code]<%
String check[]=request.getParameterValues("check");
String ck="";
for(int i=0;i<check.length;i++)
{
ck=ck+check[i]+",";
}
ck=ck.substring(0,ck.length()-1);
String spath="jcdg/jcdg.mdb";
String dbpath=application.getRealPath(spath);
String url="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="+dbpath;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn=DriverManager.getConnection(url);
Statement stmt=conn.createStatement();
String sql="select * from kucun where BookId in('"+ck+"')";
ResultSet rs=stmt.executeQuery(sql);
out.print("<table border>");
  out.print("<tr>");
  out.print("<th width=100>图书编号</th>");
  out.print("<th width=180>图书名称</th>");
  out.print("<th width=50>图书价格</th>");
out.print("<th width=80>作者</th>");
out.print("<th width=150>出版社</th>");
out.print("<th width=60>是否选择</th>");
out.print("</tr>");
while(rs.next())
{
String a,b,c,d,e;
out.print("<tr>"); 
  a=rs.getString(1);  
out.print("<td>"+a+"</td>");
b=rs.getString(2);
out.print("<td>"+b+"</td>");
c=rs.getString(3);
out.print("<td>"+c+"</td>");
d=rs.getString(4);  
out.print("<td>"+d+"</td>");
e=rs.getString(5);  
out.print("<td>"+e+"</td>");
out.print("</tr>");
}
conn.close();
%>
用的access数据库,check是复选框的名称,values是数据表的主键BookId,表中还有图书名称,价格等其他内容,如果只选中一个复选框,那么这段程序可正确运行,但是选择一个以上的复选框后,页面上就不会显示任何东西,这事怎么回事,是不是sql语句有问题,或是输出方式不对,请赐教啊啊啊,只有25分了

------解决方案--------------------
String sql="select * from kucun where BookId in('"+ck+"')"; 该语句中的ck缺少单引号啊!!
eg : select * from kucun where BookId in ('value1','value2','value3');

------解决方案--------------------
探讨

String sql="select * from kucun where BookId in('"+ck+"')"; 该语句中的ck缺少单引号啊!!
eg : select * from kucun where BookId in ('value1','value2','value3');