Pb mise a jour base de donnees

Résolu/Fermé
laurent2403 Messages postés 80 Date d'inscription jeudi 11 novembre 2010 Statut Membre Dernière intervention 23 février 2020 - 6 mai 2013 à 13:15
laurent2403 Messages postés 80 Date d'inscription jeudi 11 novembre 2010 Statut Membre Dernière intervention 23 février 2020 - 7 mai 2013 à 12:21
Bonjour, j'ai un soucis lorsque je test la mise a jour de ma bd , il me met tout le temps ce message , je ne sais pas ce que ca veut dire si quelqu'un pouvait m'aider , merci beaucoup

voici ma requette :

package Test;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.DateFormat;
import java.text.Format;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

import javax.swing.JOptionPane;
import javax.swing.text.DateFormatter;

import com.mysql.jdbc.PreparedStatement;

import controle.Connection_1;
import controle.Date_parse;
import dialogue.FrameClient;

import entite.Client;
import entite.Fournisseur;

public class Test3 {


public static boolean Modifier_Client() throws ParseException {

String vid_client = "BAPA1006";
String vnom = "ssssssss" ;
String vprenom = "fffffffff";
int vtph = 000000000000;
int vfidelite = 5;
String vdate = "2010-10-12";
boolean vvip = true ;


boolean modif = false ;
String requete = (" update client set nom = '" + vnom + "' , prenom = '" + vprenom + "' , tph = '" + vtph + "' , " +
" fidelite = '" + vfidelite + "' , vip = '" + vvip + "' where id_client = '" + vid_client + "' ");
try {
PreparedStatement prepare =
(PreparedStatement) Connection_1.getLaConnectionStatique().prepareStatement(requete);
prepare.setString(1, vid_client);
prepare.setString(2, vnom);
prepare.setString(3, vprenom);
prepare.setInt(4, vtph);
prepare.setInt(5, vfidelite);
prepare.setString(6,vdate);
prepare.setBoolean(7,vvip);
prepare.executeUpdate();
prepare.close();
modif = true;
} catch (SQLException e) {
JOptionPane.showMessageDialog(null,
"Ajout dans la BD non effectué : "
+ e.getMessage(), "Problème rencontré",
JOptionPane.ERROR_MESSAGE);
}
return modif;
}




public static void main(String[] args) throws Exception {


Modifier_Client();

}

}
A voir également:

4 réponses

supupoff Messages postés 310 Date d'inscription dimanche 27 novembre 2011 Statut Membre Dernière intervention 8 janvier 2021 34
6 mai 2013 à 14:27
il me met tout le temps ce message , vous n'avez pas poster le message d'erreur !!

aussi je crois que l'erreur vient que vous passe le paramètre dans req direct alors que tu utilise le PreparedStatement,
votre requette devras etre comme sa :

.... 
String requete = (" UPDATE client set nom = ? , prenom =? , tph = ? ,fidelite =? , vip =? where id_client =? "); 
try { 
PreparedStatement prepare = 
(PreparedStatement) Connection_1.getLaConnectionStatique().prepareStatement(requete); 

prepare.setString(1, vnom); 
prepare.setString(2, vprenom); 
prepare.setInt(3, vtph); 
prepare.setInt(4, vfidelite); 
prepare.setBoolean(5,vvip); 
prepare.setString(6, vid_client); 
.....

0
laurent2403 Messages postés 80 Date d'inscription jeudi 11 novembre 2010 Statut Membre Dernière intervention 23 février 2020 2
6 mai 2013 à 21:04
merci pour ta réponse en fait le message d'erreur est "paramètre index out of range(0<1) "
j'ai reformule ma requete mais toujours pareil , voila merci
0
supupoff Messages postés 310 Date d'inscription dimanche 27 novembre 2011 Statut Membre Dernière intervention 8 janvier 2021 34
6 mai 2013 à 22:32
pouvez-vous ré-poster votre code , Merci
0
laurent2403 Messages postés 80 Date d'inscription jeudi 11 novembre 2010 Statut Membre Dernière intervention 23 février 2020 2
7 mai 2013 à 07:40
bonjour tout le monde , j'ai reformule ma requête , mais toujours ce message
"paramètre index out of range (0<1) " je ne comprend pas trop d'où peut venir mon erreur , si quelqu'un sait ce serait sympa parce que moi je ne vois pas trop , merci beaucoup...

package Test;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.DateFormat;
import java.text.Format;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

import javax.swing.JOptionPane;
import javax.swing.text.DateFormatter;

import com.mysql.jdbc.PreparedStatement;

import controle.Connection_1;
import controle.Date_parse;
import dialogue.FrameClient;

import entite.Client;
import entite.Fournisseur;

public class Test3 {


public static boolean Modifier_Client() throws ParseException {

String vid_client = "BAPA1006";
String vnom = "sssss" ;
String vprenom = "fffffffff";
int vtph = 00000000;
int vfidelite = 5;
String vdate = "2010-10-12";
int vvip = 0 ;


boolean modif = false ;
String requete = (" UPDATE client set nom = ? , prenom =? , tph = ? ,fidelite =? , vip =? where id_client =? ");
try {
PreparedStatement prepare =
(PreparedStatement) Connection_1.getLaConnectionStatique().prepareStatement(requete);

prepare.setString(1, vid_client);
prepare.setString(2, vnom);
prepare.setString(3, vprenom);
prepare.setInt(4, vtph);
prepare.setInt(5, vfidelite);
prepare.setString(6,vdate);
prepare.setInt(7,vvip);
prepare.executeUpdate();
prepare.close();
modif = true;
} catch (SQLException e) {
JOptionPane.showMessageDialog(null,
"Ajout dans la BD non effectué : "
+ e.getMessage(), "Problème rencontré",
JOptionPane.ERROR_MESSAGE);
}
return modif;
}




public static void main(String[] args) throws Exception {


Modifier_Client();

}

}
0
supupoff Messages postés 310 Date d'inscription dimanche 27 novembre 2011 Statut Membre Dernière intervention 8 janvier 2021 34
7 mai 2013 à 11:25
ici tu passe en paramètre < date > prepare.setString(6,vdate); alors que dans ta requette ya pas de date tu doit avoir un champs date selon ta table dans base de donnée je supose que ta un champs fDate dans ta Table client alors :

String requete = (" UPDATE client set  nom = ? , prenom =? , tph = ? ,fidelite =? , vip =?  , fDtae=? where id_client =? "); 


att dans ton prepare.setString(6,vdate); la date et a la postion '6' alors dans ton requete doit avoir la position 6
--
0
laurent2403 Messages postés 80 Date d'inscription jeudi 11 novembre 2010 Statut Membre Dernière intervention 23 février 2020 2
7 mai 2013 à 12:21
ok merci pour votre aide c'est tres sympa ...
0