【问题标题】:Update Date Field in MS Access Using Java使用 Java 更新 MS Access 中的日期字段
【发布时间】:2017-05-13 08:05:25
【问题描述】:

我正在 Windows 7 中使用 MS Access 数据库创建 Java 应用程序。当我执行选择查询时,一切都很好。但是,当我从 Java 应用程序更新 MS Access DB 的 DATE 字段时,它会引发 SQL 异常。下面是我的 MS Access 表结构和 Java 代码。提前致谢。

[![This is my Ms Access Table date field structure][1]][1]

我的java源代码在这里:

String qry1="SELECT Isometric_number FROM Tbl_Weld_Details WHERE Line_number='0470-52-ADB-17034001-01' AND Sheet_number='1/2'";
            try{
                Connection con=Database.Get_Connection();
                PreparedStatement ps = con.prepareStatement(qry1);
                ResultSet rs = ps.executeQuery();
                if(rs.next())
                {
                    String Iso_no = rs.getString(1);                        

                    String qry2="UPDATE Tbl_Weld_Register SET Weld_date=?,Welders_Root1=?,Welders_Cap1=? WHERE Isometric_number=? AND Spool_No=? AND Weld_number=?";

                    PreparedStatement ps1 = con.prepareStatement(qry2);                     

                    ps1.setString(1, "29/12/2016");  //Problem is here
                    ps1.setString(2, "Cheliyan");
                    ps1.setString(3, "Raja");
                    ps1.setString(4, Iso_no);
                    ps1.setString(5, "SPL-1");
                    ps1.setString(6, "1");
                    System.out.print("Query2===========>"+qry2);
                    int res1=ps1.executeUpdate();                       

                    if(res1 > 0)
                    {
                        isSuccess = true;
                    }

                }

            }
            catch (Exception e)
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

我在日志中收到此错误:

java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 
ERROR DATE: Kindly check Weld Date or NDE Date...

at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLExecute(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.execute(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.executeUpdate(Unknown Source)
at dao.EmployeeTmsDao.updateJointNoStatus(EmployeeTmsDao.java:76)

【问题讨论】:

    标签: java sql date ms-access-2010


    【解决方案1】:

    使用 ISO 序列 (yyyy-mm-dd) 并在 octothorps 中换行以获得日期值的正确字符串表达式:

    ps1.setString(1, "#2016/12/29#"); 
    

    【讨论】:

      猜你喜欢
      • 2016-07-27
      • 2018-04-07
      • 1970-01-01
      • 1970-01-01
      • 2018-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多