操作access数据库

jianbo8807 2009-01-02 09:59:02
我写的一段access插入信息的简单代码,运行之后出现 数据库操作失败!
请各位大哥看下,帮我找出错误,很急!!!先谢谢啦
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.sql.*"%>

<%!


Statement stmt=null;
Connection conn=null;
String sql=null;
%>
<%

try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

conn = DriverManager.getConnection("jdbc:odbc:caiwu");

}catch (Exception e){

out.println("数据连接失败!");
}


try{

stmt=conn.createStatement();
sql="insert into database values( 'time','now','day','run','zhai')";
stmt.executeUpdate(sql);
}catch(Exception e){
out.println("数据操作失败!");}


try{

stmt.close();
conn.close();
}catch(Exception e) {

out.println("数据关闭失败!");}

%>
...全文
101 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
jianbo8807 2009-01-02
  • 打赏
  • 举报
回复
我用了catch啊 运行后就出现了“数据库操作失败!”
lijiaof16 2009-01-02
  • 打赏
  • 举报
回复
首先你用的是Access数据库,用此数据库和mysql数据库都应该注意一个问题:
如果表命有自动增长列
insert into 表名 values('a','b');
这样写会报列名不匹配的错误,如果用sqlserver就是对的

所以用Access需注意
这样写: insert into 表明(name,address) values('姓名','地址'); //把列名列出来


我不知道楼主的错,但我看到了你的语句,你可能是这个错.你应该把错列出来让大家看看!
icerainhxj 2009-01-02
  • 打赏
  • 举报
回复
catch住Exception,然后打个log贴出来好么。
yi1234yi 2009-01-02
  • 打赏
  • 举报
回复
如果是连接出现问题那用我这个试试吧
package com.util;


/* 数据访问组件 */

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

public class A{
private static DBPool instance = null;




private Connection _getConnection(){
try{
String sDBDriver = null;
String sConnection = null;
String sUser = null;
String sPassword = null;




sDBDriver ="sun.jdbc.odbc.JdbcOdbcDriver";
sConnection = "jdbc:odbc:dbm";
sUser ="";
sPassword = "";

Properties pr = new Properties();
pr.put("user",sUser);
pr.put("password",sPassword);
pr.put("characterEncoding", "GB2312");
pr.put("useUnicode", "TRUE");

Class.forName(sDBDriver).newInstance();
return DriverManager.getConnection(sConnection,pr);
}
catch(Exception se){
System.out.println(se);
return null;
}
}

//释放资源
public static void dbClose(Connection conn,PreparedStatement ps,ResultSet rs)
throws SQLException
{
rs.close();
ps.close();
conn.close();
}

public static void main(String[] args) {
System.out.println(DBPool.getConnection());
}
}
  • 打赏
  • 举报
回复
把报的错误贴出来看看
yi1234yi 2009-01-02
  • 打赏
  • 举报
回复
报什么错啊,odbc连好了吗?
jianbo8807 2009-01-02
  • 打赏
  • 举报
回复
'time','now','day',,,要加双引号吗。。
jianbo8807 2009-01-02
  • 打赏
  • 举报
回复
有没有人管啊 ,,,,,,,
jianbo8807 2009-01-02
  • 打赏
  • 举报
回复
谢谢 楼上! 我想知道我的代码错在哪?
jianbo8807 2009-01-02
  • 打赏
  • 举报
回复
楼上说的是字段time 么 我后来改啦 还是不成功
goailuo 2009-01-02
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 lijiaof16 的回复:]
首先你用的是Access数据库,用此数据库和mysql数据库都应该注意一个问题:
如果表命有自动增长列
insert into 表名 values('a','b');
这样写会报列名不匹配的错误,如果用sqlserver就是对的

所以用Access需注意
这样写: insert into 表明(name,address) values('姓名','地址'); //把列名列出来


我不知道楼主的错,但我看到了你的语句,你可能是这个错.你应该把错列出来让大家看看!
[/Quote]
同意9楼的看法,我也觉得 是表名那里出错
jianbo8807 2009-01-02
  • 打赏
  • 举报
回复
恩 是楼上说的那样 但我改完之后还是出现了insert语句的错误 这又是怎么回事啊
steryzone 2009-01-02
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 lijiaof16 的回复:]
首先你用的是Access数据库,用此数据库和mysql数据库都应该注意一个问题:
如果表命有自动增长列
insert into 表名 values('a','b');
这样写会报列名不匹配的错误,如果用sqlserver就是对的

所以用Access需注意
这样写: insert into 表明(name,address) values('姓名','地址'); //把列名列出来


我不知道楼主的错,但我看到了你的语句,你可能是这个错.你应该把错列出来让大家看看!
[/Quote]
同意,insert语句的错误吧。。。
jianbo8807 2009-01-02
  • 打赏
  • 举报
回复
这是查询的部分 也说错了

<%@ page contentType="text/html;charset=gb2312" %>
<%@ page import="java.sql.*" %>
<%!
Connection con = null;
Statement stmt = null;
ResultSet rs = null;

%><%

try{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("jdbc:odbc:caiwu");

}catch(Exception e){
out.println("数据库操作失败1!");
}
try{

stmt = con.createStatement ();
rs = stmt.executeQuery("select * from database");

}catch(Exception e){
out.println("数据库操作失败2!");
}

try{
if(rs!=null){
while(rs.next()){

out.println("时间:"+rs.getString("time")+"<br>");
out.println("现有资金:"+rs.getString("now")+"<br>");
out.println("日常开支:"+rs.getString("day")+"<br>");
out.println("开支出处:"+rs.getString("run")+"<br>");
out.println("债务:"+rs.getString("zhai")+"<br>");
}
}

}catch(Exception ex)
{
out.println(ex.toString());
out.println("数据库操作失败3!");
}

try{
rs.close();
stmt.close();
con.close();
}catch(Exception ex){
out.println(ex.toString());
}


%>


报错:数据库操作失败2
阳二快跑 2009-01-02
  • 打赏
  • 举报
回复
说错话了...
阳二快跑 2009-01-02
  • 打赏
  • 举报
回复
你想直接在页面看错误就out.println(e.getStackTrace());
阳二快跑 2009-01-02
  • 打赏
  • 举报
回复
错误信息呢,
jianbo8807 2009-01-02
  • 打赏
  • 举报
回复
改成楼上那样就是出现空白页了
阳二快跑 2009-01-02
  • 打赏
  • 举报
回复
把out.println("数据操作失败!");改成e.printStackTrace();再把错误信息贴出来
加载更多回复(1)

81,091

社区成员

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

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