日期:2014-05-20  浏览次数:20815 次

读取数据库的错误()
写了一个很简单的bean读数据库,运行的时候总是报错:invalid   column   name:prodimage.说是没有这个字段,但是我在运行的时候设了断点watch,结果rs的collection里面是能看到这个字段的,而且调用这个bean的jsp显示也能显示部分正确的信息,究竟是为什么啊?而且有的时候读数据库里面的字段会出现getInt(),getString()等函数报错.

------解决方案--------------------
不会这么怪异吧
------解决方案--------------------
你什么数据库?

程序部分的代码帖上来看一下吧
------解决方案--------------------
proimage blog字段?
------解决方案--------------------
我的数据库是用的sql server 2000,prodimage字段定义为varchar(200),里面写入的都是图片的相对路径字符串.
代码如下:
连接数据库的bean文件Data.java:
package test.bean;

import java.sql.*;
import java.lang.*;
import java.io.*;
import java.util.*;

public class Data {
String strDbDriver= "com.microsoft.jdbc.sqlserver.SQLServerDriver ";
String url= "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test ";
String user= "sa ";
String password= "1 ";
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;

public database(){
try{
Class.forName(strDbDriver);
}
catch(ClassNotFoundException e){
System.err.println( "error!database(): "+e.getMessage());
}
}

public ResultSet executeQuery(String sql){
rs=null;
try{
conn=DriverManager.getConnection(url,user,password);
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(sql);
}
catch(SQLException e){
System.err.println( "error!Query: "+e.getMessage());
}
return rs;
}

public void close(){
try{
if(rs!=null){
rs.close();
}
if(stmt!=null){
stmt.close();
}
if(conn!=null){
conn.close();
}
}
catch(SQLException e){
System.err.println( "database close error! ");
}
}
}

调用这个bean的类display.java:
package test.bean;

import java.sql.*;

import test.bean.*;

public class Display {
ResultSet rs=null;
Data DBS=new Data();

public Display(){}
public ResultSet getData(){
rs=DBS.executeQuery( "select * from tbTest ");
return rs;
}
}

显示效果的jsp文件List.jsp:
<%@ page contentType= "text/html; charset=UTF-8 " %>
<%@ page import= "test.bean.Display " %>
<%@ page import= "java.sql.* " %>
<html>
<head> </head>
<body>
<table>
<%
Display Disp=new Display();
ResultSet rs =Disp.getData();
while(rs.next())
{
out.println( " <TR> <TD> <img src= ' "+rs1.getString( "prodPic ") " '> <br> " </TD> </TR> <br> ");
}
%>
</table>
</body>
</html>
------解决方案--------------------
rs1.getString( "prodPic ")你的那张tbTest表中一定要有prodpic这个字段.
------解决方案--------------------
确定表中有prodPic的字段?
------解决方案--------------------
有的时候出错 有的时候不出错么

那可能是jdbc连接数据库有点问题 比如说网络问题 导致有时连接不上数据库
------解决方案--------------------