愁死我的问题二 没看你的源文件,仅作猜测:1,可能你的编号不正确时导致数据库操作失败(例如sql书写不正确)2,可能你的else内面的语句有问题,失败。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以在读写数据库之间加上try{}catch{}语句,估计你产生的错误就是null这样的错误! 当输入的编号存在时显示正常。rs=stmt.executeQuery("select * from book where bookid='" + bid+"'");我想起来了当输入的编号不存在时,页面显示 无效的游表状态 你是否将rs初始化为null?如果是的话,当输入编号不存在时,执行查询后,rs可能还是null,这时候执行rs.next()当然会出错了。你可以先加个判断试试。 无效的游表状态一般是由于没有rs.next()所致啊但?? 软盘坏了代码拿不来了,如果我用jdbc:odbc驱动连接oracle.则有上诉问题存在。但如果用thin驱动连接oracle数据库,则没有上诉问题。但新的问题来了,数据库里的中文显示不正常,乱码。 源代码!!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()); }}%> 解决中文问题:提交后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"> 我想可能是由于当结果集为空时,他抛出EXCEPTION 然后就不执行后面的了,建议用try{}catch{} 没什么大问题。在我这里运行正常。如果仅仅只是中文现实不正常,就按照: Hodex(小何才露尖尖角) 说得进行一下转码应该就ok了、 问题一:如果我用jdbc:odbc驱动连接oracle.则有上诉问题存在。但如果用thin驱动连接oracle数据库,则没有上诉问题。为什么 ?问题二:但如果用thin驱动连接oracle数据库,新的问题来了,数据库表里的中文数据在页面显示不正常,乱码。jsp页面其他部分中文显示正常?小弟自学java快半年了,最近总遇到一些奇奇怪怪的问题,非常之郁闷,愿同志同道合的朋友共同进步,msn:[email protected] 1。jdbc:odbc驱动连接出现这个问题我也不是很明白。平时我也从来不用这种odbc桥2。你的数据库中的数据是怎么放进去的?数据库是什么? struts1中重写validate方法如何获取到资源文件 <s:select>标签问题 struts数据重复呢? 通过jsp url传集合问题 谁有 MySql JDBC 驱动器 ? jsp 文件的标题为乱码。(急!!!!!!!!!!!!) 使用jspsmartupload遇到的问题 再问rainshow 有关文件操作,请大家帮忙看一下 spring + ejb3.x + jboss7.1 初始化不了本地的Local Bean 这些代码是怎么回事? 我问一个菜鸟问题,JSP是不是JAVA SCRIPT
我想起来了当输入的编号不存在时,页面显示 无效的游表状态
你可以先加个判断试试。
一般是由于没有rs.next()所致啊
但??
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());
}
}
%>
提交后
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">
问题二:但如果用thin驱动连接oracle数据库,新的问题来了,数据库表里的中文数据在页面显示不正常,乱码。jsp页面其他部分中文显示正常?
小弟自学java快半年了,最近总遇到一些奇奇怪怪的问题,非常之郁闷,愿同志同道合的朋友共同进步,
msn:[email protected]
2。你的数据库中的数据是怎么放进去的?数据库是什么?