Message d'erreur avec requette modifier

[Résolu]
Signaler
Messages postés
292
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
12 mai 2013
-
Messages postés
292
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
12 mai 2013
-
Salut, merci de bien vouloir m'aider

j'ai essayé de modifier la premiere colonne de la premiere ligne de ma table mais ça n'a pas marché un message d'erreur ::
Connected

com.mysql.jdbc.NotUpdatable: Result Set not updatable.This result set
must come from a statement that was created with a result set type of
ResultSet.CONCUR_UPDATABLE, the query must select only one table, and
must select all primary keys from that table. See the JDBC 2.1 API
Specification, section 5.6 for more details.


voici mon code


try

{

Class.forName("org.gjt.mm.mysql.Driver").newInstance();

conn = DriverManager.getConnection(url, userName, password);

System.out.println("Connected");


Statement instruction = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);


String sql = "select * from matable ";

ResultSet resultat = instruction.executeQuery(sql);

resultat.first();

//on récupère la valeur de la colonne "nom"

String nom1 = resultat.getString("nom");

//on met à jour la valeur de la colonne "nom"

resultat.updateString("nom", "nouveauNom");

//on met à jour la valeur dans la table

resultat.updateRow();

String nom2 = resultat.getString("nom");

System.out.println("Ancien nom = "+nom1+

"Nouveau nom = "+nom2);


}


catch(Exception e)

{

System.out.println( e );

}


// Create table with database data


}

2 réponses

Messages postés
292
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
12 mai 2013
1
merci ami de vouloir m'aider mais j'ai trouvé le probleme
il faut créer clé primaire le tableau dois avoir une clé primaire pourque ça marche
merci encore
Messages postés
26
Date d'inscription
vendredi 1 novembre 2002
Statut
Membre
Dernière intervention
3 février 2007
2
Bonjour,

Deja je ne connais pas le driver que tu utilises pour manipuler mysql .
Moi j'utilises celui du site officiel et la commande est donc celle ci

Class.forName("com.mysql.jdbc.Driver").

Essaye ceci pour modifier ton enregistrement :

Statement s = c.createStatement("UPDATE  matable set nom=' "+ newname +" ' WHERE nom ='" + oldname +"'");
s.executeUpdate();

tu peux aussi utiliser un prepareStatement si tu es amené a executer souvent cette requete .

PH¥§íØ