巨牛B巨郁闷的关于jsp中数据库连接的问题。(高分)

zllzmcDCR 2004-10-16 10:27:22
本人取数据库,用的是java默认的JDBC-ODBC驱动。
数据库是MS Access ,其中中有张grade表,表里面有4个字段,其中第3个字段和第4个字段除了字段名不一样外,所有东西都一样。表里面的所有数据都是字符类型的。
我用SQL查到一条记录,并且以ResultSet的形式返回,指针也指向该条记录,然后我用ResultSet.getString(int columnIndex)取数据,当columnIndex=1时正确,当columnIndex=2时正确,但是!! 当columnIndex=3时,确报了个“data not found”异常。 columnIndex=4时也正确。之后我便陷入无限的困惑中,无论怎么该,只要columnIndex=3就是取不出数据。牛B啊!!

于是我猜测,是不是JDBC-ODBC桥的问题。
如果是的话,有没有JDBC for MS access的驱动。

大家还有什么好的解决办法,请赐教啊。
...全文
158 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
net_jun 2004-10-18
  • 打赏
  • 举报
回复
<%out.print(rs.getString("3"));%>
昏,用引号就用字段名,如:
<%out.print(rs.getString("kkk"));%>
awaterking 2004-10-18
  • 打赏
  • 举报
回复
rs.getString(3)
gnodiew 2004-10-18
  • 打赏
  • 举报
回复
字段的类型仔细检查一下是不是字符型
cyouyou 2004-10-18
  • 打赏
  • 举报
回复
rs.getString("kkk")
zllzmcDCR 2004-10-18
  • 打赏
  • 举报
回复
up
zllzmcDCR 2004-10-18
  • 打赏
  • 举报
回复
数据源是这样的: (access export to txt)
"id" "name" "kkk" "password" "right"
"admin" "aaa" "a" "1234" "0"
"normal" "bbb" "a" "12" "1"


源代码是这样的:
1.InfoConnector.java
package com.info;


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;



public class InfoConnector {
private String dataBase = "data";
private Statement sta= null;
private Connection con = null;
public ResultSet rs = null;

public InfoConnector() {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("jdbc:odbc:" + dataBase);
sta = con.createStatement();
}
catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public ResultSet excuteSQL(String sql) throws SQLException {
sta.clearBatch();
return sta.executeQuery(sql);
}


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@page contentType="text/html; charset = UTF-8"%>
<%@page import="java.sql.*"%>
<%
ResultSet rs = (ResultSet)session.getAttribute("userInfo");
rs.first();
%>
<html>
<head>
<title>Data View</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body>
<table width="100%" border="0">
<tr>
<td>welcome : <%out.print(rs.getString("3"));%></td> //就是这个地方了,用3就不行。
</tr>
<tr>
<td>
<%
java.util.Date time = new java.util.Date();
String sqltime = new Timestamp(time.getTime()).toString();
out.print(time);
%>
</td>
</tr>
<tr>
<td> </td>
</tr>
</table>
</body>
</html>
power17 2004-10-16
  • 打赏
  • 举报
回复
这么牛B的问题,起码要贴个代码,还有你的数据库描述一下吧.让大家想象你的代码,再想象你的代码错了,还是其它地方错了,一个字,难.
yujiabian 2004-10-16
  • 打赏
  • 举报
回复
jdbc for ms access???这个东西永远都找不到的,需要设置odbc数据源的,JDBC-ODBC桥不会出现问题的
给你一个例子
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
String url="jdbc:odbc:test";//test为你所创建的odbc数据源
Connection conn= DriverManager.getConnection(url);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from test";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
javamissile 2004-10-16
  • 打赏
  • 举报
回复
JDBC-ODBC桥有问题几乎是零,程序或者数据库录入有问题几乎肯定!
liuyonghailiuyong 2004-10-16
  • 打赏
  • 举报
回复
是牛b阿,哈哈
好像没有jdbc for ms access的驱动吧!
XIHSHI 2004-10-16
  • 打赏
  • 举报
回复
肯定是你的程序有问题

好好找找

81,091

社区成员

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

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