Java:problème de requêtes

yserman -  
Pool Orion Messages postés 124 Statut Membre -
Salut à tous voilà j'ai écrit une requête de suppression mais j'ai un problème avec la syntaxe

voici mes trois lignes :

id est déclaré en int et je cast l'id récupérer .
Le problème est dans ma 2ième ligne comment dire que je veux supprimer les articles qui ont comme id la valeur contenue dans id ??

id=((Integer)(essai.getValueAt(essai.getSelectedRow(),0))).intValue();

String deletage="DELETE from Article where IDArticle= id";

AccesBD.executerInstruction(deletage);




voilà
merci d'avance
A voir également:

6 réponses

choubaka Messages postés 39986 Date d'inscription   Statut Modérateur Dernière intervention   2 105
 
Salut

tu es certain de récupérer un objet Integer ???

id=((Integer)(

0
yserman
 
ben oui c'est la clé de ma table qui est " numero auto"
0
Pool Orion Messages postés 124 Statut Membre 55
 
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.
0
yserman
 
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
choubaka Messages postés 39986 Date d'inscription   Statut Modérateur Dernière intervention   2 105
 
Salut

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+";"; 
0
Pool Orion Messages postés 124 Statut Membre 55
 
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.

0