没看你的源文件,仅作猜测:
1,可能你的编号不正确时导致数据库操作失败(例如sql书写不正确)
2,可能你的else内面的语句有问题,失败。

解决方案 »

  1.   

    可以在读写数据库之间加上try{}catch{}语句,估计你产生的错误就是null这样的错误!
      

  2.   

    当输入的编号存在时显示正常。rs=stmt.executeQuery("select * from book where bookid='" + bid+"'");
    我想起来了当输入的编号不存在时,页面显示 无效的游表状态
      

  3.   

    你是否将rs初始化为null?如果是的话,当输入编号不存在时,执行查询后,rs可能还是null,这时候执行rs.next()当然会出错了。
    你可以先加个判断试试。
      

  4.   

    无效的游表状态
    一般是由于没有rs.next()所致啊
    但??
      

  5.   

    软盘坏了代码拿不来了,如果我用jdbc:odbc驱动连接oracle.则有上诉问题存在。但如果用thin驱动连接oracle数据库,则没有上诉问题。但新的问题来了,数据库里的中文显示不正常,乱码。
      

  6.   

    源代码!!
    sqlqry.jsp
    <%@ page contentType="text/html;charset=gb2312" %>
    <%@ page import="java.sql.*" %>
    <%@ page language="java" %>
    <%@ include file="conn.jsp" %>
    <html>
    <HEAD>
    <TITLE>参数式查询</TITLE>
    </HEAD>
    <body>
    <center>
    <font size=5 color=blue>参数式查询</font>
    </center>
    <hr>
    <%
    String BID=request.getParameter("tmpBookID");
    if(BID==null)
    {
    rs=stmt.executeQuery("select bookid ,title from book");
    %>
    <table border=1 bordercolor=RoyalBlue bgcolor=LightYellow>
    <tr bgcolor=DeepSkyBlue>
    <td><b>书籍编号</b></td>
    <td><b>书   名</b></td>
    </tr>
    <% while( rs.next() )
    {
    %>
    <tr>
    <td><b><%=rs.getString("bookid")%></b></td>
    <td><b><%=rs.getString("title")%></b></td>
    </tr>
    <%
    }
    %>
    </table>
    <p>
    <font size=4 color=red>请输入与察看详细数据之书号</font>
    <p>
    <form action="sqlqry.jsp" method=post name=form2>
    <input type=text name=tmpBookID>
    <input type=submit value=查询 name=submit1>
    </form>
    <%
    }
    else
    {
    String strsql="select * from book where bookid='"+BID+"'";
    rs=stmt.executeQuery(strsql);
    if(rs.next())
    {
    %>
    <h3><p><font size=5 color=red>
    <%=BID%>
    </font>
    的详细数据如下:</p></h3>
    <table border=1 bordercolor=RoyalBlue bgcolor=LightBlue>
    <tr><td bgcolor=LightYellow>书籍编号</td>
    <td><%=rs.getString("bookid")%></td></tr>
    <tr><td bgcolor=LightYellow>书籍名称</td>
    <td><%=rs.getString("title")%></td></tr>
    <tr><td bgcolor=LightYellow>出版日期</td>
    <td><%=rs.getDate("pdate")%></td></tr>
    <tr><td bgcolor=LightYellow>作   者</td>
    <td><%=rs.getString("author")%></td></tr>
    <tr><td bgcolor=LightYellow>价   格</td>
    <td><%=rs.getString("price")%></td></tr>
    <tr><td bgcolor=LightYellow>总 页 数</td>
    <td><%=rs.getString("pages")%></td></tr>
    <tr><td bgcolor=LightYellow>备   注</td>
    <td><%=rs.getString("bookmemo")%></td></tr>
    </table> <%
    }
    else
    {
    %>
    <p>找不到书号为
    <font size=4 color=red>
    <%=BID%>
    </font>的书籍<p> <%
    }
    %>
    <p><a href=sqlqry.jsp>重新查询</a>
    <%
    }
    %>
    </body>
    </html>-------------------------------------------------
    conn.jsp
    <%!
    Connection con = null;
    Statement stmt = null;
    ResultSet rs = null;
    public void jspInit()
    {
    try
    {
    Class.forName("oracle.jdbc.driver.OracleDriver"); //载入驱动程式类别
    con = DriverManager.getConnection("jdbc:oracle:thin:@jary:1521:ORA2000","jary","jary"); //建立数据库连线
    //建立Statement变量, 并设定记录指标类型为可前后移动
    stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
         ResultSet.CONCUR_READ_ONLY);
    }
    catch(ClassNotFoundException cnfex)
    {
    System.out.println(cnfex.toString());
    }
    catch(Exception ex)
    {
    System.out.println(ex.toString());
    }
    }
    public void jspDestroy()
    {
    try
    {
    rs.close();
    stmt.close(); //关闭Statement变量
    con.close();  //关闭Connection变量
    }
    catch(Exception ex)
    {
    System.out.println(ex.toString());
    }
    }
    %>
      

  7.   

    解决中文问题:
    提交后
    String title=new String(request.getParameter("title").getBytes("ISO8859_1"),"GBK");
    再插入数据库。另外最好是
    <%@ page contentType="text/html; charset=gb2312" language="java" %>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
      

  8.   

    我想可能是由于当结果集为空时,他抛出EXCEPTION 然后就不执行后面的了,建议用try{}catch{}
      

  9.   

    没什么大问题。在我这里运行正常。如果仅仅只是中文现实不正常,就按照: Hodex(小何才露尖尖角) 说得进行一下转码应该就ok了、
      

  10.   

    问题一:如果我用jdbc:odbc驱动连接oracle.则有上诉问题存在。但如果用thin驱动连接oracle数据库,则没有上诉问题。为什么 ?
    问题二:但如果用thin驱动连接oracle数据库,新的问题来了,数据库表里的中文数据在页面显示不正常,乱码。jsp页面其他部分中文显示正常?
    小弟自学java快半年了,最近总遇到一些奇奇怪怪的问题,非常之郁闷,愿同志同道合的朋友共同进步,
    msn:[email protected]
      

  11.   

    1。jdbc:odbc驱动连接出现这个问题我也不是很明白。平时我也从来不用这种odbc桥
    2。你的数据库中的数据是怎么放进去的?数据库是什么?