Message d'erreur avec requette modifier

Résolu
ulysse00 Messages postés 291 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 12 mai 2013 - 2 févr. 2007 à 17:59
ulysse00 Messages postés 291 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 12 mai 2013 - 4 févr. 2007 à 21:52
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

ulysse00 Messages postés 291 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 12 mai 2013 1
4 févr. 2007 à 21:52
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
3
cs_physio Messages postés 26 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 3 février 2007 2
3 févr. 2007 à 07:59
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¥§íØ
0
Rejoignez-nous