Insertion dans la base de données et envoie de message d'erreur [Résolu]

imanebachiri - 21 mai 2013 à 16:06 - Dernière réponse :  imanebachiri
- 28 mai 2013 à 16:52
Bonjour tout le monde
je veux savoir comment faire le test dans ma servlet sur ma base de données :
Quand l'utilisateur saisi les données à partir d'un formulaire pour un certain id
si elle existe déjà une entrée dans la base correspondante à cet id on empêche l'insertion et un message est affiché à l'utilisateur pour indiquer que il existe déja une entrée dans la base pour cet ID

Merci beaucoup pour vos réponses
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscriptionModérateurStatut 17 mai 2018 Dernière intervention - 22 mai 2013 à 09:10
3
Merci
Salut,

Définir l'id de ta base de données en clé primaire, si c'est impossible, définit le en UNIQUE et là, tu n'auras rien d'autre à faire.

Merci cs_Julien39 3

codes-sources a aidé 81 internautes ce mois-ci

Commenter la réponse de cs_Julien39
imanebachiri - 27 mai 2013 à 21:22
0
Merci
Merci bcp Julien; maintenant j'ai un autre problème je veux faire le test dans ma servlet si ma ligne est insérée dans la base de données (le resultat de updatequery=1)je veux afficher un message indiquant que la ligne est correctement insérée

merci d'avance pour vos réponse
Commenter la réponse de imanebachiri
fallpoint - 28 mai 2013 à 13:45
0
Merci
Bonjour essai ce bout de code sa marche
            int n=updatequery(le_nom_de_la_requete);
            if(n>0)
                JOptionPane.showMessageDialog(null, "operation reussi");
            
Commenter la réponse de fallpoint
imanebachiri - 28 mai 2013 à 16:09
0
Merci
Merci bcp de m'avoir répondu ça marche mais à chaque fois je règle un problème il me sort un autre mon problème maintenant est que quand j'exécute ma requête et si la ligne n'est pas inséré et JOptionPane s'affiche jusqu'au là ç bon (n=0) mais mon problème est lorsque j'exécute ma servlet une deuxième fois le n garde toujours la valeur 0 et le JOptionPane s'affiche toujours même si la ligne doit être insérée le n=0 l'empêche d'être insérée
Merci d'avance pour vos réponses
Commenter la réponse de imanebachiri
fallpoint - 28 mai 2013 à 16:25
0
Merci
je ne comprend pas, mais essai de compléter le code avec else exemple
       else{
                JOptionPane.showMessageDialog(null, "Opération échoués", "Message", JOptionPane.ERROR_MESSAGE);
            }
Commenter la réponse de fallpoint
imanebachiri - 28 mai 2013 à 16:47
0
Merci
merci Fallpoint mais c'est pas ça mon problème voici ledoget de ma servlet :
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session=request.getSession();
Statement statement = null;
int SS= Integer.parseInt((session.getAttribute("ide")).toString());
String choix = request.getParameter("membre");
int matricule = Integer.parseInt((request.getParameter("matricule")).toString());
try {
i=0;


statement = connect.conn.createStatement();


// execute insert SQL stetement
i= statement.executeUpdate("INSERT INTO jurysoutenance VALUES('"+matricule+"','"+SS+"','"+choix+"' )" );


} catch (SQLException e) {

System.out.println(e.getMessage());

} finally {

if (statement != null) {
try {
statement.close();
} catch (SQLException ex) {
Logger.getLogger(Choisir_statut.class.getName()).log(Level.SEVERE, null, ex);
}
}

if (connect.conn != null) {
try {
connect.conn.close();
} catch (SQLException ex) {
Logger.getLogger(Choisir_statut.class.getName()).log(Level.SEVERE, null, ex);
}
}


}
if(i==1)
{
response.sendRedirect("page.jsp");
}

else if(i==0)
{ response.sendRedirect("erreur_insertion.jsp");
}

}

mon problème si à la première fois la ligne est insérée je me suis redirigée vers page.jsp et si j'execute ma servlet une deuxième fois je me suis redirigée une deuxième fois vers page.jsp même si la ligne n'est pas insérée dans la BD c'est comme si n garde toujours la valeur 1


Merci pour votre aide
Commenter la réponse de imanebachiri
imanebachiri - 28 mai 2013 à 16:52
0
Merci
merci Fallpoint mais c'est pas ça mon problème voici ledoget de ma servlet :
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session=request.getSession();
Statement statement = null;
int SS= Integer.parseInt((session.getAttribute("ide")).toString());
String choix = request.getParameter("membre");
int matricule = Integer.parseInt((request.getParameter("matricule")).toString());
try {
i=0;


statement = connect.conn.createStatement();


// execute insert SQL stetement
i= statement.executeUpdate("INSERT INTO jurysoutenance VALUES('"+matricule+"','"+SS+"','"+choix+"' )" );


} catch (SQLException e) {

System.out.println(e.getMessage());

} finally {

if (statement != null) {
try {
statement.close();
} catch (SQLException ex) {
Logger.getLogger(Choisir_statut.class.getName()).log(Level.SEVERE, null, ex);
}
}

if (connect.conn != null) {
try {
connect.conn.close();
} catch (SQLException ex) {
Logger.getLogger(Choisir_statut.class.getName()).log(Level.SEVERE, null, ex);
}
}


}
if(i==1)
{
response.sendRedirect("page.jsp");
}

else if(i==0)
{ response.sendRedirect("erreur_insertion.jsp");
}

}

mon problème si à la première fois la ligne est insérée je me suis redirigée vers page.jsp et si j'execute ma servlet une deuxième fois je me suis redirigée une deuxième fois vers page.jsp même si la ligne n'est pas insérée dans la BD c'est comme si n garde toujours la valeur 1


Merci pour votre aide
Commenter la réponse de imanebachiri

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.