小弟用JSP做一个简单的系统,要实现添加删除修改功能,用JAVABEAN连接数据库,已经成功,添加也已经实现,目前在删除上遇到了问题,点击删除按纽,转跳到删除页面,在数据库test中有表A表B,从中各取数据显示在删除页面的表单上,我是这样写的,各位看看那错了:
<body topmargin="0" bgcolor=lightyellow>
<br> 
<div align="center"><font size=12 color="red"><b>警告!</b></font></div>
<br>
<div ><font size=5 color="#3333FF"><strong>您正在试图删除如下记录:</strong></font></div>
<br><%String mbid=request.getParameter("mbid");
String awdid=request.getParameter("awdid");
String nm=new String(request.getParameter("nm").getBytes("ISO8859_1"));
String awdnm=new String(request.getParameter("awdnm").getBytes("ISO8859_1"));DBall_bean.Connect(); //连接数据库,//
//连接查询语句//
String query=" select  member_info2.nm, awdtp_info.awdnm, awd_info.mbid, awd_info.awdid
from awd_info,member_info2,awdtp_info
where awd_info.mbid = member_info2.mbid,awdtp_info.awdid = awd_info.awdid; "
ResultSet rs=DBall_bean.executeQuery(query);
if (rs.next())
{
%>
<form id="form3" name="info3" method="post" action="D_awd_info.jsp?mbid=<%=mbid%>&awdid=<%=awdid%>">
  <div align="center">
    <table width="534" height="229" border="1" cellpadding="1" cellspacing="0" bgcolor="#CCCCFF">
      <tr>
        <td width="129" height="41"><div align="center"><font color="#FF6600"><strong>姓名</strong></font></div></td>
        <td width="395"><%=nm%>&nbsp;</td>
      </tr>
      <tr>
        <td height="37"><div align="center"><font color="#FF6600"><strong>获奖名称</strong></font></div></td>
        <td height="37"><%=awdnm%>&nbsp;</td>
      </tr>
      <tr>
        <td height="36"><div align="center"><font color="#FF6600"><strong>授予时间</strong></font></div></td>
        <td height="36"><%=rs.getString("awddt")%>&nbsp;</td>
      </tr>
      <tr>
        <td height="38"><div align="center"><font color="#FF6600"><strong>批准机关</strong></font></div></td>
        <td height="38"><%=rs.getString("auth")%>&nbsp;</td>
      </tr>
      <tr>
        <td height="36"><div align="center"><font color="#FF6600"><strong>先进事迹</strong></font></div></td>
        <td height="36"><%=rs.getString("awdnt")%>&nbsp;</td>
      </tr>
      <tr>
        <td height="39" colspan="2"><div align="center">
          <input type="submit" name="Submit2" value="确定">
                &nbsp;&nbsp;&nbsp; 
          <input type="button" name="Submit2" value="返回"onClick="javascript:history.go(-1);return true;">
          &nbsp;</div></td>
      </tr>
    </table>
  </div>
</form>
<%}
DBall_bean.Close();
%>
</body>
</html>

解决方案 »

  1.   

    TO sole_lodestar() try/catch 都写在javabean里面了,在这个jsp页面的最顶部调用javabean:<jsp:useBean id="DBall_bean" class="DBall.DBall"/>
      

  2.   

    where awd_info.mbid = member_info2.mbid,awdtp_info.awdid = awd_info.awdid
    逗号改成and
      

  3.   

    to copine() 我的问题是删除功能实现不了,添加可以实现,点击添加提交表单后,能插入一条记录,但点击删除页面就显示不出来了上面这段是我写的删除页面的代码,我不知道那里错了,请您指点迷津.谢谢!!
      

  4.   

    我已经改了,页面报错如下:
    Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Unable to compile class for JSPAn error occurred at line: 22 in the jsp file: /add/O_awd_info.jspGenerated servlet error:
        [javac] Compiling 1 source fileD:\TOMCAT\Tomcat 4.1\work\Standalone\localhost\dangyuan\add\O_awd_info_jsp.java:98: unclosed string literal
    String query=" select  member_info2.nm, awdtp_info.awdnm, awd_info.mbid, awd_info.awdid
                 ^
    An error occurred at line: 22 in the jsp file: /add/O_awd_info.jspGenerated servlet error:
    D:\TOMCAT\Tomcat 4.1\work\Standalone\localhost\dangyuan\add\O_awd_info_jsp.java:100: unclosed string literal
    where awd_info.mbid = member_info2.mbid and awdtp_info.awdid = awd_info.awdid ";
                                                                                  ^
    2 errors
    at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:85)
    at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:248)
    at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:315)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:328)
    at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:427)
    at org.apache.jasper.servlet.JspServletWrapper
    郁闷,分号有什么错误?
      

  5.   

    unclosed string literal
    你的String query=" select  member_info2.nm, awdtp_info.awdnm, awd_info.mbid, awd_info.awdid……这句有错误,每行代码都要有分号做结束符的
      

  6.   

    D:\TOMCAT\Tomcat 4.1\work\Standalone\localhost\dangyuan\add\O_awd_info_jsp.java:98: unclosed string literal
    String query=" select  member_info2.nm, awdtp_info.awdnm, awd_info.mbid, awd_info.awdid
                 ^An error occurred at line: 22 in the jsp file: /add/O_awd_info.jspGenerated servlet error:
    D:\TOMCAT\Tomcat 4.1\work\Standalone\localhost\dangyuan\add\O_awd_info_jsp.java:100: unclosed string literal
    where awd_info.mbid = member_info2.mbid and awdtp_info.awdid = awd_info.awdid ";
                                                                                  ^
    2 errors
    显示的有问题,提示select语句开头和末尾的分号出错
      

  7.   

    你看一下D:\TOMCAT\Tomcat 4.1\work\Standalone\localhost\dangyuan\add\O_awd_info_jsp.java
    的100行
      

  8.   

    String query=" select  member_info2.nm, awdtp_info.awdnm, awd_info.mbid, awd_info.awdid from ******** where awd_info.mbid = member_info2.mbid and awdtp_info.awdid = awd_info.awdid ";
    ******为你的表
      

  9.   

    to sole_lodestar() 谢谢您耐心的恢复,我已经按您所说把分号放在引号外了,可提示说select="  select  member_info2.nm, awdtp_info.awdnm, awd_info.mbid, awd_info.awdid
    from awd_info,member_info2,awdtp_info
    where awd_info.mbid = member_info2.mbid and awdtp_info.awdid = awd_info.awdid ";
    此句中 ="" 两个引号有错,不知道怎么回事,粘贴的话 ^ 位置不对,实际是指向两个引号的
      

  10.   

    select=" …… ?????????
    String query="…… 吧?
    把你的sql语句写出来,赋给query变量不就行了
      

  11.   

    to sole_lodestar() from awd_info,member_info2,awdtp_info是这三个表
    member_info2 中有nm 
    awdtp_info   中有awdnm  查询这两个列的值显示在删除表单的页面中就完成了
      

  12.   

    to sole_lodestar() :
    select=" …… ?????????
    String query="…… 吧?
    把你的sql语句写出来,赋给query变量不就行了
    ==============================================
    是啊,我正是这个意思,我是这样写的:
    String query=" select  member_info2.nm, awdtp_info.awdnm, awd_info.mbid, awd_info.awdid
    from awd_info,member_info2,awdtp_info
    where awd_info.mbid = member_info2.mbid and awdtp_info.awdid = awd_info.awdid ";
    //以上是查询语句,以下是边历结果集//
    ResultSet rs=DBall_bean.executeQuery(query);
      

  13.   

    String sqlSelect = " select member_info2.nm, awdtp_info.awdnm, awd_info.mbid, awd_info.awdid ";String sqlFrom = " from awd_info,member_info2,awdtp_info ";String sqlWhere = " where awd_info.mbid = member_info2.mbid and awdtp_info.awdid = awd_info.awdid ";String query = sqlSelect + sqlFrom + sqlWhere;
      

  14.   

    String mbid=request.getParameter("mbid");
    String awdid=request.getParameter("awdid");
    这两个是不是要传给query里的参数?如果是就在sqlWhere中加上
      

  15.   

    to sole_lodestar() 按您说的改了这回tomcat没报错,JSP页面显示如下:
    The server encountered an internal error () that prevented it from fulfilling this request.
    exception 
    javax.servlet.ServletException: Column not found
    at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:498)
    at org.apache.jsp.O_awd_info_jsp._jspService(O_awd_info_jsp.java:209)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:92)
    ................
    root cause 
    java.sql.SQLException: Column not found
    at sun.jdbc.odbc.JdbcOdbcResultSet.findColumn(JdbcOdbcResultSet.java:1852)
    at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:413)
    ...............
      

  16.   

    Column not found
    表的列名是不是写错了?和数据库里对应一下
    看看O_awd_info_jsp.java的209行附近
      

  17.   

    to sole_lodestar() 列名没有写错,您说的参数问题,我个人认为是,不过不太肯定
    mbid 是member_info2表的主键,对应着member表中的nm 也就是姓名
    awdid是awdtp_info表的主键,   对应着awdtp表中的awdnm 也就是获奖名称
    是这样加的吗?:String query = sqlSelect + sqlFrom + sqlWhere + mbid + awdid;
      

  18.   

    String sqlWhere = " where awdtp_info.mbid="+awdid+" and member_info2.awdid="+mbid +" and awd_info.mbid = member_info2.mbid and awdtp_info.awdid = awd_info.awdid ";
    如果你的两个列的类型是字符型的话要加单引号,如下
    String sqlWhere = " where awdtp_info.mbid='"+awdid+"' and member_info2.awdid='"+mbid+"' and awd_info.mbid = member_info2.mbid and awdtp_info.awdid = awd_info.awdid ";