数据库操作(access)
代码如下:(数据库中有一个  贴子  表,里面的  贴子id,回复id 都是长整型)if ((Is_Delete.equals("1")&&(Edit_Id==null)))
{
    sql = "Select * From  贴子 Where 贴子id="+Delete_Id;
    rs=stmt.executeQuery(sql);
    Delete_Id_Back=rs.getString("回复id");  //出问题??
    if(Delete_Id_Back.equals("0"))  
{    //主题帖子
       int count = rs.getInt("回复次数");    //也有问题???
      sql="Delete From 贴子 Where 回复id="+Delete_Id;  //删除该主题帖子的回复帖子
       rs=stmt.executeQuery(sql);  
   
       sql="Delete From 贴子 Where 贴子id="+Delete_Id;   //删除主题帖子
   stmt.executeUpdate(sql);    
   //更新论坛中帖子数量
       sql = "update 论坛栏目 set 贴子数量=贴子数量-count,主题数量=主题数量-1 where 论坛id="+Board_Id;
   stmt.executeUpdate(sql); 
 } 
    else   //删除回复的帖子
   {     
      sql = "Delete From 贴子 Where 贴子id="+Delete_Id;
      stmt.executeUpdate(sql);
      sql = "update 贴子 set 回复次数=回复次数-1 where 贴子id="+Delete_Id_Back;
      stmt.executeUpdate(sql);
      sql = "update 论坛栏目 set 贴子数量=贴子数量-1 where 论坛id="+Board_Id;
      stmt.executeUpdate(sql);
}
}我调试了很久,发现错误出在   Delete_Id_Back=rs.getString("回复id"); 这句话
只要把它注掉,程序就能执行,但是不知道出在哪里,出错信息是:
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: [Microsoft][ODBC ???????] ???????
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:867)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:800)
org.apache.jsp.querymodify_jsp._jspService(querymodify_jsp.java:162)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
root cause java.sql.SQLException: [Microsoft][ODBC ???????] ???????
sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6879)
sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7036)
sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3862)
sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java:5561)
sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:338)
sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:395)
org.apache.jsp.querymodify_jsp._jspService(querymodify_jsp.java:125)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)不知道到底哪里出错了,望各位执教!

解决方案 »

  1.   

    javax.servlet.ServletException: [Microsoft][ODBC ???????] ???????
    =================
    what does it mean?
      

  2.   

    Delete_Id_Back=rs.getString("回复id"); 把这句注掉,那后还有这么多地方引用..怎么不出错误??
      

  3.   

    不用中文字段试试,access中文字段不是很好
      

  4.   

    我也觉的用中文不好,sql,还支持吗
      

  5.   

    你试试把它改成getstring(‘列名’)
      

  6.   

    大家好,我也遇到jsp数据库方面的问题,请大家帮忙:代码是:错误是说user附近有语法错误:<%@ page contentType="text/html; charset=gb2312"  %><html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>登陆验证</title><link rel=stylesheet href="style.css" type="text/css">
    </head><body>
    <%@ page  language="java" import="java.sql.*"  %>
    <jsp:useBean id="LoginBean" scope="page" class="firm.firm" />
    <%
      String name1 = new String(request.getParameter("user_id").getBytes("8859_1"));
      
       String pwd1 = new String(request.getParameter("password").getBytes("8859_1"));
     
       
        String sql="select *  from user where username ='"+name1+"'and password='"+pwd1+"'";
            ResultSet rs=LoginBean.executeQuery(sql);
           if(rs.next())
            {
               rs.close();
       LoginBean.closeStmt();
       LoginBean.closeConn();
       session.putValue("username",name1);
       session.putValue("password",pwd1);
       %>
      <script language=javascript>
      window.loction="index_ok.jsp?=成功登陆"
      </script>
      <%  }
      else{
           rs.close();
      LoginBean.closeStmt();
           LoginBean.closeConn();
           String msg="用户名和密码有误!";
       session.putValue("login_message",msg);
       %>
       <jsp:forward page="relogin.jsp"/>
       <%  }  %>
      
    </body>
    </html>
      

  7.   

    打做了
    是改成getstring('列序号');
    如getstring(3);