数据插入access问题!郁闷啊。
使用java把数据存入access中,执行后提示:
------------------------------------------
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] INSERT INTO 语句包含下列未知的字段名: '品名 '。确定键入的名称是正确的, 然后重试。
at sun.jdbc.odbc.JdbcOdbc.create
SQLException(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类型的,他是主键,每次插入都要自动加一,怎么使用?最好有使用方法。
------解决方案--------------------不是品名而是 '品名 '
品名会被当错列名而不是内容
试下
上回我是这样解决的
------解决方案--------------------你这么插呢?自增长是不用插入的,他把 "3 "插入了 "品名 "里了吧
INSERT INTO tBuyBack (品名) VALUES( '感冒通 ')