敬请大家关注一下我的问题:JBX里面JavaBean出现错误

cgldragon 2004-08-31 06:15:32
错误现象:

An error occured in the bean. Error Message is: [Microsoft][SQLServer 2000 Driver for JDBC]Value can not be converted to requested type.Stack Trace is : java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Value can not be converted to requested type.
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.base.BaseData.getInteger(Unknown Source)
at com.microsoft.jdbc.base.BaseResultSet.getInt(Unknown Source)
at org.apache.jsp.Index$jsp._jspService(Index$jsp.java:87)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:201)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027)
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125)
at java.lang.Thread.run(Thread.java:534)

...全文
121 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dragon2005 2004-08-31
  • 打赏
  • 举报
回复
Value can not be converted to requested type

建议楼主查查java.sql包的RecordSet接口:

getInt(int columnIndex)
getInt(String columnName)
getString(int columnIndex)
getString(String columnName)

。。。。。。。。。
一点晴 2004-08-31
  • 打赏
  • 举报
回复


呵呵,楼上正解。数据库中一和三字段都是字符型的。
楼主应该用 rs.getString();
zhifangtu 2004-08-31
  • 打赏
  • 举报
回复

rs.getInt(1)+" "+rs.getInt(3)

确定你的authors表中第一个和第三个字段是 int 类型的吗?
一点晴 2004-08-31
  • 打赏
  • 举报
回复

你的数据库驱动程序配置好象有问题。

不知道你在JBX中是怎么配的。
cgldragon 2004-08-31
  • 打赏
  • 举报
回复
Bean:

package toushi;
import java.sql.*;

public class DB_Operator
{
String sDBDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String sConnStr="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
String user = "sa";
String password = "sa";

Connection conn=null;
ResultSet rs=null;
public DB_Operator()
{
try{
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e)
{
System.err.println("DB_Operator():"+e.getMessage());
}
}

public ResultSet executeQuery(String sql)
{
//rs=null;
try
{
conn=DriverManager.getConnection(sConnStr,user,password);
Statement stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
}
catch(SQLException ex)
{
System.err.println("DB_Operator.executeQuery:"+ex.getMessage());
}
return rs;
}

}

jsp:

<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.sql.*" %>
<%@ page errorPage="Index_error.jsp" %>
<html>
<head>
<title>
Index
</title>
</head>
<jsp:useBean id="dB_OperatorId" scope="session" class="toushi.DB_Operator" />

<body bgcolor="#ffffff">
<%
String sql="select * from authors";
ResultSet rs=dB_OperatorId.executeQuery(sql);
while(rs.next()){
out.println(rs.getInt(1)+" "+rs.getInt(3)+"<br>");
}
rs.close();
%>
</body>
</html>
一点晴 2004-08-31
  • 打赏
  • 举报
回复

SQL驱动不能转化为请求的类型。贴代码~~~
constantine 2004-08-31
  • 打赏
  • 举报
回复
up

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧