Java:problème de requêtes
Fermé
yserman
-
23 mars 2005 à 11:38
Pool Orion Messages postés 124 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 15 juin 2007 - 24 mars 2005 à 07:29
Pool Orion Messages postés 124 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 15 juin 2007 - 24 mars 2005 à 07:29
A voir également:
- Java:problème de requêtes
- Expliquez les différences entre les différentes requêtes - Forum Bases de données
- Graphql server responded with error 1675030: erreur lors de l’envoi de la requête. - Forum Facebook
- Adn trop de requêtes. veuillez réessayer plus tard - Forum Facebook
- Nos systèmes ont détecté un trafic exceptionnel sur votre réseau informatique. cette page permet de vérifier que c'est bien vous qui envoyez des requêtes, et non un robot ✓ - Forum Virus / Sécurité
- Erreur lors de l'envoi de la requete ✓ - Forum Facebook
6 réponses
choubaka
Messages postés
39153
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
24 mars 2023
2 099
23 mars 2005 à 11:54
23 mars 2005 à 11:54
Salut
tu es certain de récupérer un objet Integer ???
id=((Integer)(
tu es certain de récupérer un objet Integer ???
id=((Integer)(
Pool Orion
Messages postés
124
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
15 juin 2007
55
23 mars 2005 à 13:12
23 mars 2005 à 13:12
Salut,
C'est quoi ta base de données?
Un petit conseil, utilise les PreparedStatement c'est beaucoup mieux.
Sinon, la plupart des bases de données on des domaines et dans ce cas, si tu veux accéder à ta table, il te faut renseigner schema.article where article.id = ...
Donne nous plus d'infos sur ta config ce sera plus simple.
C'est quoi ta base de données?
Un petit conseil, utilise les PreparedStatement c'est beaucoup mieux.
Sinon, la plupart des bases de données on des domaines et dans ce cas, si tu veux accéder à ta table, il te faut renseigner schema.article where article.id = ...
Donne nous plus d'infos sur ta config ce sera plus simple.
c'est une base de données access
une de mes tables se nomme Article
la clé de cette table est IDArticle (NumeroAuto)
et je veux supprimer la ligne que j'ai selectionnée dans mon tableau
voici le code de ma class :
/*
* ConsulterProduit.java
*
* Created on 4 mars 2005, 14:48
*/
package GestionStock;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.sql.*;
import java.applet.*;
/**
*
* @author Kevin
*/
public class SupprimerProduit extends JFrame {
JTable essai;
JButton retour,supp;
Generale g;
Container cont;
JPanel pan;
String requete;
/** Creates a new instance of ConsulterProduit */
public SupprimerProduit() {
super ("Suppression d'articles");
setBounds (10,40,950,520);
setResizable(false);
addWindowListener (new WindowAdapter ()
{public void windowClosing (WindowEvent e) {
System.exit (0);}});
//déclaration du conteneur
cont = getContentPane();
cont.setLayout (null );
cont.setBackground(Color.white);
//déclaration du panneau qui contient le tableau
pan=new JPanel(new FlowLayout () );
pan.setBounds(25,50, 900, 350);
pan.setBackground(Color.white);
//selectionner colonne de la table
requete="SELECT Ref,Nom,Categorie,Description,Prix,Quantite,Fournisseur,Seuil FROM Article";
//executer requete à tablemodel qui retourne un modele pour une JTable
essai=AccesBD.creerTableModel(requete);
essai.setBackground(Color.white);
essai.getColumnModel().getColumn(0).setPreferredWidth(80);
essai.getColumnModel().getColumn(1).setPreferredWidth(150);
essai.getColumnModel().getColumn(2).setPreferredWidth(120);
essai.getColumnModel().getColumn(3).setPreferredWidth(200);
essai.getColumnModel().getColumn(4).setPreferredWidth(70);
essai.getColumnModel().getColumn(5).setPreferredWidth(40);
essai.getColumnModel().getColumn(6).setPreferredWidth(150);
essai.getColumnModel().getColumn(7).setPreferredWidth(40);
//pas de taille fixe pour les colonnes
essai.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
//ajout du bouton retour
retour = new JButton (new ImageIcon (getClass().getClassLoader().getResource("GestionStock/Images/retour.jpg")));
retour.setBounds (150,450,85,25);
retour.setBackground(Color.WHITE);
cont.add (retour);
supp=new JButton (new ImageIcon (getClass().getClassLoader().getResource("GestionStock/Images/supp.jpg")));
supp.setBounds (600,450,85,25);
supp.setBackground(Color.WHITE);
cont.add (supp);
//ajout du tableau dans le panneau
pan.add (essai);
//ajout du panneau dans le conteneur
cont.add(pan);
MonGestionnaire ecout =new MonGestionnaire(); //classe écouteur d'evenements
retour.addActionListener(ecout);
supp.addActionListener(ecout);
show();
}
//methode graphique pour le cadrillage et le nom des colonnes
public void paint ( Graphics g)
{
super.paint (g);
g.setColor(Color.red);
g.draw3DRect(45,80,860,350,true);
g.setColor(Color.red);
g.draw3DRect(45,40,90,40,true);
g.setColor(Color.red);
g.draw3DRect(135,40,145,40,true);
g.setColor(Color.red);
g.draw3DRect(280,40,125,40,true);
g.setColor (Color.red);
g.draw3DRect(405,40,195,40,true);
g.setColor (Color.red);
g.setColor(Color.red);
g.draw3DRect(600,40,70,40,true);
g.setColor(Color.red);
g.draw3DRect(670,40,40,40,true);
g.setColor(Color.red);
g.draw3DRect(710,40,150,40,true);
g.setColor(Color.red);
g.draw3DRect(860,40,45,40,true);
g.setFont(new Font ("SansSerif",Font.PLAIN,16));
g.drawString ("Réf ",70,70);
g.setFont(new Font ("SansSerif",Font.PLAIN,16));
g.drawString ("Nom ",190,70);
g.setFont(new Font ("SansSerif",Font.PLAIN,16));
g.drawString ("Catégorie ",310,70);
g.setFont(new Font ("SansSerif",Font.PLAIN,16));
g.drawString ("Description ",450,70);
g.setFont(new Font ("SansSerif",Font.PLAIN,16));
g.drawString ("Prix ",620,70);
g.setFont(new Font ("SansSerif",Font.PLAIN,16));
g.drawString ("Nbr ",680,70);
g.setFont(new Font ("SansSerif",Font.PLAIN,16));
g.drawString ("Fournisseur ",740,70);
g.setFont(new Font ("SansSerif",Font.PLAIN,16));
g.drawString ("Seuil ",865,70);
}
//gestionnaire d'action
private class MonGestionnaire implements ActionListener
{
public void actionPerformed(ActionEvent e) //méthode appelée si on clique sur le bouton
{
if (e.getSource()== retour)
{
dispose ();
}
if (e.getSource()== supp)
{
int id=((Integer)(essai.getValueAt(essai.getSelectedRow(),0))).intValue();
String deletage="DELETE from Article where IDArticle="+id+";";
AccesBD.executerInstruction(deletage);
pan.removeAll();
essai=AccesBD.creerTableModel(requete);
pan.add(essai);
essai.setBackground(Color.WHITE);
essai.getColumnModel().getColumn(0).setPreferredWidth(80);
essai.getColumnModel().getColumn(1).setPreferredWidth(150);
essai.getColumnModel().getColumn(2).setPreferredWidth(120);
essai.getColumnModel().getColumn(3).setPreferredWidth(200);
essai.getColumnModel().getColumn(4).setPreferredWidth(70);
essai.getColumnModel().getColumn(5).setPreferredWidth(40);
essai.getColumnModel().getColumn(6).setPreferredWidth(150);
essai.getColumnModel().getColumn(7).setPreferredWidth(40);
pan.repaint();
SupprimerProduit.this.show();
}
}
}
}
ce qui me pose problême c'est donc la suppression de la ligne tout à la fin, et je pense bien que c'ets juste la ligne :
String deletage="DELETE from Article where IDArticle="+id+";";
car quand je remplace le "id" par un nombre entier ca marche (mais alors sans les + et les guillemets , mais il faut que je supprime la ligne correspondant à la valeur de id et ca j'arrive pas
une de mes tables se nomme Article
la clé de cette table est IDArticle (NumeroAuto)
et je veux supprimer la ligne que j'ai selectionnée dans mon tableau
voici le code de ma class :
/*
* ConsulterProduit.java
*
* Created on 4 mars 2005, 14:48
*/
package GestionStock;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.sql.*;
import java.applet.*;
/**
*
* @author Kevin
*/
public class SupprimerProduit extends JFrame {
JTable essai;
JButton retour,supp;
Generale g;
Container cont;
JPanel pan;
String requete;
/** Creates a new instance of ConsulterProduit */
public SupprimerProduit() {
super ("Suppression d'articles");
setBounds (10,40,950,520);
setResizable(false);
addWindowListener (new WindowAdapter ()
{public void windowClosing (WindowEvent e) {
System.exit (0);}});
//déclaration du conteneur
cont = getContentPane();
cont.setLayout (null );
cont.setBackground(Color.white);
//déclaration du panneau qui contient le tableau
pan=new JPanel(new FlowLayout () );
pan.setBounds(25,50, 900, 350);
pan.setBackground(Color.white);
//selectionner colonne de la table
requete="SELECT Ref,Nom,Categorie,Description,Prix,Quantite,Fournisseur,Seuil FROM Article";
//executer requete à tablemodel qui retourne un modele pour une JTable
essai=AccesBD.creerTableModel(requete);
essai.setBackground(Color.white);
essai.getColumnModel().getColumn(0).setPreferredWidth(80);
essai.getColumnModel().getColumn(1).setPreferredWidth(150);
essai.getColumnModel().getColumn(2).setPreferredWidth(120);
essai.getColumnModel().getColumn(3).setPreferredWidth(200);
essai.getColumnModel().getColumn(4).setPreferredWidth(70);
essai.getColumnModel().getColumn(5).setPreferredWidth(40);
essai.getColumnModel().getColumn(6).setPreferredWidth(150);
essai.getColumnModel().getColumn(7).setPreferredWidth(40);
//pas de taille fixe pour les colonnes
essai.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
//ajout du bouton retour
retour = new JButton (new ImageIcon (getClass().getClassLoader().getResource("GestionStock/Images/retour.jpg")));
retour.setBounds (150,450,85,25);
retour.setBackground(Color.WHITE);
cont.add (retour);
supp=new JButton (new ImageIcon (getClass().getClassLoader().getResource("GestionStock/Images/supp.jpg")));
supp.setBounds (600,450,85,25);
supp.setBackground(Color.WHITE);
cont.add (supp);
//ajout du tableau dans le panneau
pan.add (essai);
//ajout du panneau dans le conteneur
cont.add(pan);
MonGestionnaire ecout =new MonGestionnaire(); //classe écouteur d'evenements
retour.addActionListener(ecout);
supp.addActionListener(ecout);
show();
}
//methode graphique pour le cadrillage et le nom des colonnes
public void paint ( Graphics g)
{
super.paint (g);
g.setColor(Color.red);
g.draw3DRect(45,80,860,350,true);
g.setColor(Color.red);
g.draw3DRect(45,40,90,40,true);
g.setColor(Color.red);
g.draw3DRect(135,40,145,40,true);
g.setColor(Color.red);
g.draw3DRect(280,40,125,40,true);
g.setColor (Color.red);
g.draw3DRect(405,40,195,40,true);
g.setColor (Color.red);
g.setColor(Color.red);
g.draw3DRect(600,40,70,40,true);
g.setColor(Color.red);
g.draw3DRect(670,40,40,40,true);
g.setColor(Color.red);
g.draw3DRect(710,40,150,40,true);
g.setColor(Color.red);
g.draw3DRect(860,40,45,40,true);
g.setFont(new Font ("SansSerif",Font.PLAIN,16));
g.drawString ("Réf ",70,70);
g.setFont(new Font ("SansSerif",Font.PLAIN,16));
g.drawString ("Nom ",190,70);
g.setFont(new Font ("SansSerif",Font.PLAIN,16));
g.drawString ("Catégorie ",310,70);
g.setFont(new Font ("SansSerif",Font.PLAIN,16));
g.drawString ("Description ",450,70);
g.setFont(new Font ("SansSerif",Font.PLAIN,16));
g.drawString ("Prix ",620,70);
g.setFont(new Font ("SansSerif",Font.PLAIN,16));
g.drawString ("Nbr ",680,70);
g.setFont(new Font ("SansSerif",Font.PLAIN,16));
g.drawString ("Fournisseur ",740,70);
g.setFont(new Font ("SansSerif",Font.PLAIN,16));
g.drawString ("Seuil ",865,70);
}
//gestionnaire d'action
private class MonGestionnaire implements ActionListener
{
public void actionPerformed(ActionEvent e) //méthode appelée si on clique sur le bouton
{
if (e.getSource()== retour)
{
dispose ();
}
if (e.getSource()== supp)
{
int id=((Integer)(essai.getValueAt(essai.getSelectedRow(),0))).intValue();
String deletage="DELETE from Article where IDArticle="+id+";";
AccesBD.executerInstruction(deletage);
pan.removeAll();
essai=AccesBD.creerTableModel(requete);
pan.add(essai);
essai.setBackground(Color.WHITE);
essai.getColumnModel().getColumn(0).setPreferredWidth(80);
essai.getColumnModel().getColumn(1).setPreferredWidth(150);
essai.getColumnModel().getColumn(2).setPreferredWidth(120);
essai.getColumnModel().getColumn(3).setPreferredWidth(200);
essai.getColumnModel().getColumn(4).setPreferredWidth(70);
essai.getColumnModel().getColumn(5).setPreferredWidth(40);
essai.getColumnModel().getColumn(6).setPreferredWidth(150);
essai.getColumnModel().getColumn(7).setPreferredWidth(40);
pan.repaint();
SupprimerProduit.this.show();
}
}
}
}
ce qui me pose problême c'est donc la suppression de la ligne tout à la fin, et je pense bien que c'ets juste la ligne :
String deletage="DELETE from Article where IDArticle="+id+";";
car quand je remplace le "id" par un nombre entier ca marche (mais alors sans les + et les guillemets , mais il faut que je supprime la ligne correspondant à la valeur de id et ca j'arrive pas
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
choubaka
Messages postés
39153
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
24 mars 2023
2 099
23 mars 2005 à 14:55
23 mars 2005 à 14:55
Salut
essaye de rajouter la ligne de code, tu verras à l'écran ce qu'est réellement "id".
essaye de rajouter la ligne de code, tu verras à l'écran ce qu'est réellement "id".
int id=((Integer)(essai.getValueAt(essai.getSelectedRow(),0))).intValue();
System.out.println(""+id);
String deletage="DELETE from Article where IDArticle="+id+";";
Pool Orion
Messages postés
124
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
15 juin 2007
55
24 mars 2005 à 07:29
24 mars 2005 à 07:29
Oui, en effet je pense que c'est la meilleur solution pour voir exactement l'ordre sql généré.
Fait également attention à la sélection multiple dans ta JTable.
Fait également attention à la sélection multiple dans ta JTable.