Modification

kawtar_ch Messages postés 41 Date d'inscription jeudi 7 juin 2007 Statut Membre Dernière intervention 17 juillet 2008 - 2 août 2007 à 18:19
amundain Messages postés 110 Date d'inscription mercredi 28 mars 2007 Statut Membre Dernière intervention 28 août 2012 - 9 août 2007 à 12:23
Bonjour!!

j'ai une jTable qui recupere les données via une base de données access
je voudrais pouvoir modifier des lignes de ma jTable, j'ai réussi a le faire en rendant ediatables les cellules, le probleme c'est que je voudrais faire la mise a jour dans ma base de données, je pense que je devrais changer quelque chose dans la methode SetValueAt définie comme suit:

public void setValueAt(Object value, int row, int column) {
     
    // On met à jour la JTable
  



        try {
            String tableName = metaData.getTableName(column+1);
            // Some of the drivers seem buggy, tableName should not be null.
            if (tableName == null) {
                System.out.println("Table name returned null.");
            }
            String columnName = getColumnName(column);
            String query =
                "update "+tableName+
                " set "+columnName+" = "+dbRepresentation(column, value)+
                " where ";
            // We don't have a model of the schema so we don't know the
            // primary keys or which columns to lock on. To demonstrate
            // that editing is possible, we'll just lock on everything.
            for(int col = 0; col<getColumnCount(); col++) {
                String colName = getColumnName(col);
                if (colName.equals("")) {
                    continue;
                }
                if (col != 0) {
                    query = query + " and ";
                }                query query + colName +" "+
                    dbRepresentation(col, getValueAt(row, col));
            }
            System.out.println(query);
            System.out.println("Not sending update to database");
             statement.executeQuery(query);
        }
        catch (SQLException e) {
            //     e.printStackTrace();
            System.err.println("Update failed");
        }
        Vector dataRow = (Vector)rows.elementAt(row);
        dataRow.setElementAt(value, column);
    }
   
je suis débutante en java et je ne sais pas ce que je pourrais faire comme modification pour que ça marche 
pourriez -vous m'aider?
Merci d'avance
   

1 réponse

amundain Messages postés 110 Date d'inscription mercredi 28 mars 2007 Statut Membre Dernière intervention 28 août 2012 1
9 août 2007 à 12:23
Salut,

"String query =
                "update "+tableName+
                " set "+columnName+" = "+dbRepresentation(column, value)+
                " where ";"

n'est pas correct, il faut quelque chose après le "where" pour spécifier quel endroit modifier...

A +,

amundain
<hr size="2" width="100%" />Java bien,merci.
0
Rejoignez-nous