在MS Access中插入日期时,java中发生错误

在MS Access中插入日期时,java中发生错误,java,ms-access,jdbc,Java,Ms Access,Jdbc,这是我想在MS Aceess数据库中插入日期的代码 try { pst = con.prepareStatement("insert into InOut (Date) Values(?)"); pst.setString(1,jTextField3.getText()); pst.executeUpdate(); JOptionPane.showMessageDialog(null,"Saved Successfully."); } catch(Exc

这是我想在MS Aceess数据库中插入日期的代码

  try { 
    pst = con.prepareStatement("insert into InOut (Date) Values(?)");
    pst.setString(1,jTextField3.getText());
    pst.executeUpdate();
    JOptionPane.showMessageDialog(null,"Saved Successfully.");
  } catch(Exception xp1) {
    xp1.printStackTrace();
    JOptionPane.showMessageDialog(null,xp1.getMessage());
    return;
  }
但在运行所述代码时发生以下错误:-

java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6964) at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6964) at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7121) at sun.jdbc.odbc.JdbcOdbc.SQLPrepare(JdbcOdbc.java:4837) at sun.jdbc.odbc.JdbcOdbcConnection.prepareStatement(JdbcOdbcConnection.java:475) at sun.jdbc.odbc.JdbcOdbcConnection.prepareStatement(JdbcOdbcConnection.java:443) java.sql.SQLException:[Microsoft][ODBC Microsoft Access驱动程序] INSERT INTO语句中的语法错误 位于sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6964) 位于sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6964) 位于sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7121) 位于sun.jdbc.odbc.JdbcOdbc.SQLPrepare(JdbcOdbc.java:4837) 位于sun.jdbc.odbc.JdbcOdbcConnection.prepareStatement(JdbcOdbcConnection.java:475) 位于sun.jdbc.odbc.JdbcOdbcConnection.prepareStatement(JdbcOdbcConnection.java:443)
请帮帮我

正如@Gord Thompson所提到的,您可以在原生sql查询中强制转换一个值。但是在将变量jTextField3.getText()发送到sql之前,将其强制转换为Date。因为它是一个UI输入,所以使用日期解析器首先解析它,然后将其转换为日期

我假设数据库中的列的名称是userDateColumn。您必须强制用户以特定格式输入日期,否则将出现异常

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

try { 
   String userInput = jTextField3.getText();
   // Convert UserInput Into Date
   Date userDate = sdf.parse(userInput);

   pst = con.prepareStatement("insert into InOut (userDateColumn) Values(?)");

    // Send that is the input to the sql 
   pst.setString(1,userDate);
选中此

日期
是Access中的SQL,因此如果必须将其用作列名,则需要将其括在方括号中,如下所示:

pst=con.prepareStatement(“插入InOut([Date])值(?);
ps.setString(1,“2011-12-31”);
ps.executeUpdate();

谢谢您的评论,为了更好地了解我,请您输入相同的代码。。。。。