Java:problème de requêtes
yserman
-
Pool Orion Messages postés 124 Statut Membre -
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
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:
- Java:problème de requêtes
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Waptrick java voiture - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Eclipse java - Télécharger - Langages
6 réponses
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