Je peux très bien lire les lignes/colonnes, mais je ne peux pas mettre à jour, insérer ou supprimer.Java: impossible de mettre à jour Excel en utilisant JDBC ODBC
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);}
Ce code échoue lorsqu'il atteint rs.updateRow();
et affiche cette erreur:
java.sql.SQLException: [Microsoft][ODBC Excel Driver]Error in row
Note: Certaines personnes disent que c'est à cause de READONLY est pas définie sur false ou 0, mais je l'ai déjà fait et le fichier Excel est pas non plus mis en lecture seule
J'ai suivi les étapes pour appliquer Mettre à jour des objets dans ResultSet ici: http://download.oracle.com/javase/tutorial/jdbc/basics/retrieving.html
pour limiter les possibilités d'erreurs, pourquoi ne pas changer votre instruction select pour SELECT nom d'utilisateur FROM [utilisateurs $]? Il y a toujours la possibilité qu'il y ait vraiment une "erreur en ligne". –