<%
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 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分了
解决方案 »
- java RMI 问题 高手请进,小弟在线恭候...先谢谢了啊!
- 请教jdbc无法访问mysql
- 请问高手们一个关于Servlet和xml的一个问题!!!~~~~~
- 这些东西为什么叫这样的名子?eclipse,structs.spring,hibernate
- 求教 跪求大虾给一个同步歌词的程序
- 为什么编码变成西欧(ISO)了?
- java中的继承分配内存问题
- [200分]使用struts和hibernate,sqlserver数据库开发新增时插入到苦中的数据全是乱码!!
- POI怎樣把導出的Excel數據導出到客戶端?
- 关于J2EE系统的安全性通常都是怎么实现的?
- java.lang.NoSuchMethodException: Action[/employee] does not contain specified me
- JSP中使用Onclick传值到Servlet,是怎样?新人——求指教!
eg : select * from kucun where BookId in ('value1','value2','value3');
你通过request传过来都是数组了,而sql用in 是需要单引号滴:
根据你String sql="select * from kucun where BookId in('"+ck+"')" ;如果多选那假设的数组String []check={"aaa","bbb","ccc"};你的sql值就是select * from kucun where BookId in(‘aaa,bbb,ccc’);
可以改两个地方
for(int i=0;i<check.length;i++)
{
ck+=("'"+check[i]+"',");
}
String sql="select * from kucun where BookId in("+ck+")";即可。