我写的一段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("数据关闭失败!");}
       
%>

解决方案 »

  1.   

    http://hi.baidu.com/xulei1143/blog/item/0bf76edf28dd5f11495403aa.html
      

  2.   

    'time','now','day',,,要加双引号吗。。 
      

  3.   

    如果是连接出现问题那用我这个试试吧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());
    }
        }
      

  4.   

    catch住Exception,然后打个log贴出来好么。
      

  5.   

    首先你用的是Access数据库,用此数据库和mysql数据库都应该注意一个问题:
    如果表命有自动增长列
       insert into 表名 values('a','b');
    这样写会报列名不匹配的错误,如果用sqlserver就是对的所以用Access需注意
      这样写:  insert into 表明(name,address) values('姓名','地址');  //把列名列出来
    我不知道楼主的错,但我看到了你的语句,你可能是这个错.你应该把错列出来让大家看看!
     
      

  6.   

    我用了catch啊  运行后就出现了“数据库操作失败!”
      

  7.   

    忘了传值了 听了大家的意见我又改了下
    下面是改了后的代码
    <%@ page contentType="text/html; charset=GBK" %>
    <%@ page import="java.sql.*"%><%!       
        Statement stmt=null;
        Connection conn=null;
        String sql=null; 
    %>
      <% 
      
        String time=request.getParameter("time");
        String now=request.getParameter("now");
        String day=request.getParameter("day");
        String run=request.getParameter("run");
        String zhai=request.getParameter("zhai");
       
      
       %>
     <%      
        
        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(time,now,day,run,zhai) values( 'time','now','day','run','zhai')";            
       stmt.executeUpdate(sql);
            }catch(Exception e){
             out.println("数据操作失败!");}
             
             
          try{   
             
           stmt.close();
           conn.close();
           }catch(Exception e) {
           
           out.println("数据关闭失败!");}
           
    %>
      

  8.   

     把out.println("数据操作失败!");改成e.printStackTrace();再把错误信息贴出来
      

  9.   

    你想直接在页面看错误就out.println(e.getStackTrace());
      

  10.   

    这是查询的部分 也说错了 
    <%@ 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
      

  11.   

    恩  是楼上说的那样  但我改完之后还是出现了insert语句的错误  这又是怎么回事啊
      

  12.   

    楼上说的是字段time 么   我后来改啦  还是不成功