使用java把数据存入access中,执行后提示:
------------------------------------------
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] INSERT INTO 语句包含下列未知的字段名: '品名'。确定键入的名称是正确的, 然后重试。
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3111)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)
at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(JdbcOdbcStatement.java:288)
at com.hy.Access.main(Access.java:34)
------------------------------------------
access表结构如下:
表:tBuyBack
字段:字段名称    类型    主键   可否为空      说明
       序号       Counter  是      否         此列自动增长
       品名       Text(20) 否      是
------------------------------------------
//java语句如下:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class Access { /**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
Connection conn = null;
Statement stmt = null;
String sql = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=E:\\TRANSMIT.MDB";
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection(sql, "sa", "");
stmt = conn.createStatement();
} catch (Exception e) {
System.out.println(e.getMessage());
}
try {
stmt.executeUpdate("INSERT  INTO  tBuyBack (序号,品名) VALUES('3','感冒通')");
stmt.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}}
------------------------------------------------
字段里“品名”是有的,为什么还要提示INSERT INTO 语句包含下列未知的字段名:'品名'。
INSERT  INTO  tBuyBack (序号) VALUES('3')是好的。
还有就是access里Date/Time类型的格式是什么样的?是2007-02-07?还是2007-02-07 16:30:20?
序号是counter类型的,他是主键,每次插入都要自动加一,怎么使用?最好有使用方法。