【发布时间】:2010-11-20 07:15:49
【问题描述】:
我可以很好地读取行/列,但我无法更新、插入或删除。
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String myDB = "jdbc:odbc:Driver={Microsoft Excel Driver (*.xls)};DBQ=myExcelFile.xls;"
+
"DriverID=22;READONLY=false";
con = DriverManager.getConnection(myDB, username, password);
stmt = con.createStatement();
stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
rs = stmt.executeQuery("SELECT * FROM [users$]");
while (rs.next()) {
String str = rs.getString("username");
System.out.println(str);
rs.updateString("username", str + "UPDATED");
rs.updateRow();
}
rs.close();
stmt.close();
con.close();
}catch(Exception e){System.out.println(e);}
此代码在到达rs.updateRow(); 时失败并显示此错误:
java.sql.SQLException: [Microsoft][ODBC Excel 驱动程序]错误 行
注意:有人说是因为READONLY没有设置为false或0,但我已经做了,而且Excel文件也没有设置为只读
我按照以下步骤在此处应用 更新 ResultSet 对象中的行:http://download.oracle.com/javase/tutorial/jdbc/basics/retrieving.html
【问题讨论】:
-
为了限制出错的可能性,为什么不将您的选择语句更改为 SELECT username FROM [users$]?总有可能确实存在“行中的错误”。