这是我要通过其插入日期到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驱动程序]
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()转换为Date,然后再将其发送到sql中。因为它是UI输入,所以使用Date解析器首先解析它,然后将其转换为Date。
我假设数据库中列的名称为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);
选中此SimpleDateFormat ignoring month when parsing