IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

Faire un update en diminuant la valeur en stock


Sujet :

JDBC Java

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 212
    Points : 23
    Points
    23
    Par défaut Faire un update en diminuant la valeur en stock
    Bonjour,

    J'ai un problème qui je voudrais demander votre aide. en fait j'ai un formulaire en jave qui permet à l'utilisateur de commander un produit à partir d'une liste déroulante qui contient tout les noms de produits stockés dans la table sql et introduire la quantité désiré. une fois l'utilisateur clique sur le bouton valide la quantité demandé va être éliminer de la quantité en stock.
    Voici le code que j'ai proposé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    public void actionPerformed(ActionEvent evt) {
    			// TODO Auto-generated method stub
    			if(evt.getSource()==b1){
    				int x=Integer.parseInt(text1.getText());
    				String a= (String) liste.getSelectedItem();
    				System.out.println(a);
    			try	{
    					Class.forName("com.mysql.jdbc.Driver");
     
    					laConnection =  (Connection) DriverManager.getConnection("jdbc:mysql://localhost/application?useSSL=false","boutheina","30071986"); 
     
    			String  sql = "select quantite from produit where designation=?";
     
    			PreparedStatement statement = laConnection.prepareStatement(sql);
    			statement.setObject(1, a);
    					try(ResultSet Rs = statement.executeQuery()) {
    						while(Rs.next()){
    						if(Rs.getInt("quantite")>=x){
    							JOptionPane.showMessageDialog(null, "Your Command is validated, "
    									+ "you can move to the payement", 
    	  		                        "InformationMessage",
    	  		                        JOptionPane.INFORMATION_MESSAGE);
    							try	{
    								Class.forName("com.mysql.jdbc.Driver");
     
    								laConnection =  (Connection) DriverManager.getConnection("jdbc:mysql://localhost/application?useSSL=false","boutheina","30071986"); 
    								String sql1="Update produit set quantite= quantite-'x' where designation=?";
    								PreparedStatement statement1 = laConnection.prepareStatement(sql1);
     
    					statement1.setObject(1, a);
    					if(statement1.executeUpdate()!=1){
      				    	JOptionPane.showMessageDialog(null, "la modification de la quantité n'est pas effectué ", 
      		                        "Error Message",
      		                        JOptionPane.ERROR_MESSAGE);}
      				    else{JOptionPane.showMessageDialog(null, "la modification de la quantité est effectué", 
      		                    "Information Message",
      		                    JOptionPane.INFORMATION_MESSAGE);
      				    }
    							}
    							catch
    							(Exception e)
    							{
    							            System.out.print("impossible de se connecter à la base");
    							            e.printStackTrace();
     
    							} 
    						}
    					else
    					{
    						JOptionPane.showMessageDialog(null, "An error appears in the inscription: the ID of the product already exist ", 
      		                        "Error Message",
      		                        JOptionPane.ERROR_MESSAGE);}
     
     
    			    }
    					}
    			    catch
    				(Exception e)
    				{
    				            System.out.print("impossible de se connecter à la base dans la requete update");
    				            e.printStackTrace();
     
    				} 
    				}
    			catch
    			(Exception e)
    			{
    			            System.out.print("impossible de se connecter à la base");
    			            e.printStackTrace();}
    			}
    voici l'erreur affiché:
    impossible de se connecter à la basecom.mysql.jdbc.MysqlDataTruncation: Data truncation: Truncated incorrect DOUBLE value: 'x'
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3964)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3902)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2526)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2673)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2549)
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1861)
    at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2073)
    at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2009)
    at com.mysql.jdbc.PreparedStatement.executeLargeUpdate(PreparedStatement.java:5098)
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1994)
    at Distributeur.Order.actionPerformed(Order.java:167)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$000(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Dans ta requête, tu essayes d'enregistrer la valeur x comme un nombre : or, x n'est pas un nombre mais une lettre, soit entre quotes, une chaîne de caractères, inconvertible en nombre.

    A là place de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String sql1="Update produit set quantite= quantite-'x' where designation=?";
    								PreparedStatement statement1 = laConnection.prepareStatement(sql1);
    statement1.setObject(1, a);
    faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    String sql1="Update produit set quantite= quantite-? where designation=?";
    								PreparedStatement statement1 = laConnection.prepareStatement(sql1):
     
    statement1.setInt(1, x);
    statement1.setString(2, a);
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 212
    Points : 23
    Points
    23
    Par défaut
    ok le problème est résolu merci vous tous pour votre aide.

  4. #4
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Points : 1 493
    Points
    1 493
    Par défaut
    Citation Envoyé par boutheinanabeul Voir le message
    ok le problème est résolu merci vous tous pour votre aide.
    Si tu pourrais marquer la discussion résolue...

    Christian Djo,
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 13
    Dernier message: 24/09/2010, 22h07
  2. [ SQL ] Faire un update avec un select imbriqué
    Par zozolh2 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 11/04/2005, 12h05
  3. faire un update partiel
    Par danseur dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 19/01/2004, 18h27
  4. update sur plusieurs nouvelles valeurs
    Par Mut dans le forum Langage SQL
    Réponses: 4
    Dernier message: 02/11/2003, 16h15
  5. Réponses: 7
    Dernier message: 02/06/2003, 08h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo