<%@ page language="java" import="java.util.*,java.io.*,java.sql.*" pageEncoding="utf-8"%>
<html>
<body>
<%
    try{ 
        String tablename =(String)session.getValue("tablename"); 
        String choose[] = request.getParameterValues("box");   
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
String url = "jdbc:sqlserver://localhost:1433;DatabaseName=newtable";
String user = "sa";
String password = "123";
Connection conn = DriverManager.getConnection(url,user,password); 
String sql = "delete from " + tablename + "where choose=?";  
PreparedStatement ps = conn.prepareStatement(sql); 
out.print("哈哈1");
for (int i=0; i<choose.length; i++) {
out.print("哈哈2");
ps.setString(1,choose[i]);
out.print("哈哈3");
ps.executeUpdate();
}
ResultSet rs = ps.executeQuery();
out.print("哈哈4");          
    response.sendRedirect("newtable.jsp");
} catch (Exception e) {
e.printStackTrace();
}    
%>
</body>
</html>
其中的out.print("哈哈*");是为了测试,看哪一步错了,后来执行完了,打出:
哈哈1哈哈2哈哈3 也就是说ps.executeUpdate();没执行呀,且后面说的错误是:“'choose' 附近有语法错误。”要么就是超出索引。
求救~~~~~~~~~~~~~~~~  
 

解决方案 »

  1.   

    String sql = "delete from " + tablename + "where choose=?";
    少空格了吧
    String sql = "delete from " + tablename + " where choose=?";
      

  2.   

    哈哈同学。SQL语句是不是没传参啊??
      

  3.   

    ResultSet rs = ps.executeQuery(); 
    out.print("哈哈4");          
    你写这两句干嘛!? 程序中根本没有查询语句的啊!那肯定这里要出问题了啊!String sql = "delete from " + tablename + " where choose = ?";这句中where之前要加空格~  
    你再试试看行不?
      

  4.   

    String sql = "delete from " + tablename + "where choose=?";  
    where 前加空格
      

  5.   

    恩...我想问的是该程序在什么情况才才能跳转到执行out.print("哈哈4") ;
      

  6.   

    ResultSet rs = ps.executeQuery(); 这是干什么?
    对于CRUD操作:delete,insert,update ->ps.executeUpdate()(更新操作);
                               select ->ps.executeQuery(查询操作);
     
      

  7.   

    String sql = "delete from " + tablename + "where choose=?";  
    "where"前少了一个空格
      

  8.   

    out.print("哈哈3"); 
    ps.executeUpdate(); 
    } 在执行这里之前,最好是把sql 语句打印出来,然后拿到数据库里面去执行下,看是不是sql 语句问题就知道啦