frere tuck | Voila mon pb : je veux interfacer une base de donnees access avec une interface en java.
Donc pour le moment je me contente de coder les principales fonctions d'ajout/supression/modification.
Des informations concernant des etablissements sont affichés dans des zones de texte en fonction de l'établissement sélectionné (par son nom) dans une liste déroulante.
Lorsque ces informations sont affichées, un click sur le bouton modifier, permet de modifier l'enregistrement correspondant.
Mon premier problème est que lorsque je met à jour l'enregistrement je voudrais que le nom de l'établissement soit mis à jour.
Hors j'obtient le message suivant : "État de curseur non valide".
Mon second problème est que je ne parvient pas à insérer la variable "numeroetab" dans ma requete de mise a jour a la place de la valeur 6:
String updateString = "UPDATE ETABLISSEMENT " +
"SET nomet = '"+sNom+"' " +
"WHERE numet = 6";
Voila je m'excuse pour la naiveté de mes questions mais je suis débutant en JAVA.
Indication seule les fonctions : ItemStateChanged, recupdonnee, modif et recuptab sont concernés par mes problèmes.
PS : je code sous JBuilder et je vous joint le code complet de classe.
Code :
- //Import + package
- package projetjavaiie;
- import javax.swing.*;
- import java.awt.*;
- import java.awt.event.*;
- import java.awt.event.ActionEvent;
- //package pour les acces bd
- import java.io.*;
- import java.util.*;
- import java.sql.*;
- //Constructeur/////////////////////////////////////////////////////////////////
- public class Etablissement extends JPanel implements ActionListener, ItemListener {
- //definition des objet de la fenetre
- public JTextField NomE = new JTextField();
- JTextField Adr = new JTextField();
- JTextField Tel = new JTextField();
- JTextField Fax = new JTextField();
- JTextField MailEt = new JTextField();
- JTextField SiteEt = new JTextField();
- JTextField CodeEt = new JTextField();
- JLabel Lnom = new JLabel();
- JLabel Ladr = new JLabel();
- JLabel Ltel = new JLabel();
- JLabel Lfax = new JLabel();
- JLabel Lmail = new JLabel();
- JLabel Lsite = new JLabel();
- JLabel Lcode = new JLabel();
- JButton AjoutDonnees = new JButton();
- JButton RAZ = new JButton();
- JButton Modifier = new JButton();
- JLabel Titre = new JLabel();
- JComboBox listeetab = new JComboBox();
- Vector Snom = new Vector();
- Vector Snum = new Vector();
- Vector Sadresse = new Vector();
- Vector Smail = new Vector();
- Vector Stel = new Vector();
- Vector Sfax = new Vector();
- Vector Ssite = new Vector();
- Vector Scode = new Vector();
- int numeroetab=0;
- //Si la valeur de la liste change//////////////////////////////////////////////
- public void itemStateChanged(ItemEvent ie)
- {
- if(ie.getSource()==listeetab)
- {
- int num = listeetab.getSelectedIndex();
- NomE.setText((String) Snom.elementAt(num));
- Adr.setText((String) Sadresse.elementAt(num));
- MailEt.setText((String) Smail.elementAt(num));
- Tel.setText((String) Stel.elementAt(num));
- Fax.setText((String) Sfax.elementAt(num));
- SiteEt.setText((String) Ssite.elementAt(num));
- CodeEt.setText((String) Scode.elementAt(num));
- recupetab();
- System.out.println(numeroetab);
- //System.out.println(listeetab.getSelectedIndex());
- }
- }
- ///////////////////////////////////////////////////////////////////////////////
- //Methode//////////////////////////////////////////////////////////////////////
- public Etablissement() {
- //Ajout de l'ecoute des evenements du boutton
- listeetab.addActionListener(this);
- setBackground(Color.yellow);
- try {
- jbInit();
- listeetab.addItemListener(this);
- AjoutDonnees.addActionListener(this);
- RAZ.addActionListener(this);
- Modifier.addActionListener(this);
- }
- catch(Exception e) {
- e.printStackTrace();
- }
- }
- ///////////////////////////////////////////////////////////////////////////////
- //initialisation des objet sur la fenetre//////////////////////////////////////
- private void jbInit() throws Exception
- {
- //definition de proprietes de objets
- Titre.setFont(new java.awt.Font("Dialog", 1, 20));
- Titre.setText("Edition Etablissement" );
- Titre.setBounds(new Rectangle(83, 7, 225, 25));
- NomE.setText("" );
- Adr.setText("" );
- Tel.setText("" );
- Fax.setText("" );
- MailEt.setText("" );
- SiteEt.setText("" );
- CodeEt.setText("" );
- NomE.setBounds(130,40,100,17);
- Adr.setBounds(130,70,100,17);
- Tel.setBounds(130,100,100,17);
- Fax.setBounds(130,130,100,17);
- MailEt.setBounds(130,160,100,17);
- SiteEt.setBounds(130,190,100,17);
- CodeEt.setBounds(130,220,100,17);
- Lnom.setText("Nom Etablissement :" );
- Ladr.setText("Adresse :" );
- Ltel.setText("Telephone :" );
- Lfax.setText("Fax :" );
- Lmail.setText("E-Mail :" );
- Lsite.setText("Site :" );
- Lcode.setText("Code Etablissement :" );
- Lnom.setBounds(10,36,130,25);
- Ladr.setBounds(10,66,100,25);
- Ltel.setBounds(10,96,100,25);
- Lfax.setBounds(10,126,100,25);
- Lmail.setBounds(10,156,100,25);
- Lsite.setBounds(10,186,100,25);
- Lcode.setBounds(new Rectangle(10, 216, 130, 25));
- AjoutDonnees.setBounds(new Rectangle(125, 256, 119, 28));
- AjoutDonnees.setText("Ajout Données" );
- RAZ.setBounds(new Rectangle(5, 256, 115, 28));
- RAZ.setText("Remise à zéro" );
- Modifier.setBounds(new Rectangle(245, 256, 115, 28));
- Modifier.setText("Modifier" );
- listeetab.setSelectedItem(NomE);
- listeetab.setBounds(new Rectangle(256, 40, 102, 20));
- this.setRequestFocusEnabled(true);
- this.setToolTipText("" );
- //initialisation de la fenetre
- this.setLayout(null);
- //ajout des objets
- this.add(NomE, null);
- this.add(Adr, null);
- this.add(Tel, null);
- this.add(Fax, null);
- this.add(MailEt, null);
- this.add(SiteEt, null);
- this.add(CodeEt, null);
- this.add(Lnom, null);
- this.add(Ladr, null);
- this.add(Ltel, null);
- this.add(Lfax, null);
- this.add(Lmail, null);
- this.add(Lsite, null);
- this.add(Lcode, null);
- this.add(AjoutDonnees, null);
- this.add(RAZ, null);
- this.add(Modifier, null);
- this.add(Titre, null);
- this.add(listeetab, null);
- recupDonnee();
- }
- //Ecoute des evenements sur objet//////////////////////////////////////////////
- public void actionPerformed(ActionEvent action) {
- Object ob = action.getSource();
- if (ob == AjoutDonnees)
- {
- ajoutDonnee();
- }
- if (ob == RAZ)
- {
- raz();
- }
- if (ob == Modifier)
- {
- modif();
- }
- }
- ///////////////////////////////////////////////////////////////////////////////
- //Ajout des donnees dans la BDD////////////////////////////////////////////////
- public void ajoutDonnee()
- {
- //On récupere les donnees du formulaire
- String sNom = NomE.getText();
- String sAdr = Adr.getText();
- String sTel = Tel.getText();
- String sFax = Fax.getText();
- String sMail = MailEt.getText();
- String sSite = SiteEt.getText();
- String sCode = CodeEt.getText();
- //driver de connexion a la base de donnees
- String data = "jdbc:odbc:;DRIVER=Microsoft Access Driver (*.mdb); DBQ=D:/MesDocuments/JAVAIIE/ProjetJAVAIIE/JAVA.mdb;";
- try{
- //connexion a la base de donnees
- Class.forName("sun.jdbc.odbc.JdbcOdbcDriver" );
- Connection con = DriverManager.getConnection(data,"","" );
- Statement st = con.createStatement();
- //definition et execution de requete
- String maj = "INSERT INTO ETABLISSEMENT (nomet, adresseet, telet, faxet, mailet, siteet, codeet) VALUES ('"+sNom+"','"+sAdr+"','"+sTel+"','"+sFax+"','"+sMail+"','"+sSite+"','"+sCode+"')";
- st.executeUpdate(maj);
- recupDonnee();
- }
- catch (Exception e){System.out.println("erreur :" +e.toString());}
- }
- ///////////////////////////////////////////////////////////////////////////////
- //Recuperation des donnees pour affichage dans la liste////////////////////////
- public void recupDonnee()
- {
- String data = "jdbc:odbc:;DRIVER=Microsoft Access Driver (*.mdb); DBQ=D:/MesDocuments/JAVAIIE/ProjetJAVAIIE/JAVA.mdb;";
- Snom.removeAllElements();
- //Snum.removeAllElements();
- try {
- //int num = ListeE.getSelectedIndex();
- //int numero;
- Class.forName("sun.jdbc.odbc.JdbcOdbcDriver" );
- Connection con = DriverManager.getConnection(data,"","" );
- Statement st = con.createStatement();
- ResultSet rs = st.executeQuery("SELECT * FROM ETABLISSEMENT" );
- //ResultSet rs2 = st.executeQuery("SELECT numet FROM ETABLISSEMENT where nomet='"+(String) Snom.elementAt(num)+"';" );
- while (rs.next())
- {
- //numeroetab= rs.getInt("numet" );
- Snom.addElement(rs.getString("nomet" ));
- Sadresse.addElement(rs.getString("adresseet" ));
- Smail.addElement(rs.getString("mailet" ));
- Stel.addElement(rs.getString("telet" ));
- Sfax.addElement(rs.getString("faxet" ));
- Ssite.addElement(rs.getString("siteet" ));
- Scode.addElement(rs.getString("codeet" ));
- }
- listeetab.removeAllItems();
- for (int i=0; i<Snom.size(); i++)
- {
- listeetab.addItem((String)Snom.elementAt(i));
- }
- rs.close();
- st.close();
- con.close();
- }
- catch(Exception e){System.out.println("erreur :" +e.toString());}
- }
- ///////////////////////////////////////////////////////////////////////////////
- ///remise a zero des valeurs///////////////////////////////////////////////////
- public void raz()
- {
- NomE.setText("" );
- Adr.setText("" );
- Tel.setText("" );
- Fax.setText("" );
- MailEt.setText("" );
- SiteEt.setText("" );
- CodeEt.setText("" );
- }
- ///Modification de l'enregistrement selectionne///////////////////////////////
- public void modif()
- {
- String data = "jdbc:odbc:;DRIVER=Microsoft Access Driver (*.mdb); DBQ=D:/MesDocuments/JAVAIIE/ProjetJAVAIIE/JAVA.mdb;";
- Snom.removeAllElements();
- String sNom = NomE.getText();
- String sAdr = Adr.getText();
- String sTel = Tel.getText();
- String sFax = Fax.getText();
- String sMail = MailEt.getText();
- String sSite = SiteEt.getText();
- String sCode = CodeEt.getText();
- String updateString = "UPDATE ETABLISSEMENT " +
- "SET nomet = '"+sNom+"' " +
- "WHERE numet = '"+numeroetab+"'";
- try {
- Class.forName("sun.jdbc.odbc.JdbcOdbcDriver" );
- Connection con = DriverManager.getConnection(data,"","" );
- Statement st = con.createStatement();
- System.out.println(numeroetab);
- st.executeUpdate(updateString);
- //listeetab.removeAllItems();
- //recupDonnee();
- for (int i=0; i<Snom.size(); i++)
- {
- listeetab.addItem((String)Snom.elementAt(i));
- }
- st.close();
- }
- catch(Exception e){System.out.println("erreur :" +e.toString());}
- }
- ///recuperation du numero de l'etablissment correspondant a la liste pour traitement///////
- public void recupetab()
- {
- String data = "jdbc:odbc:;DRIVER=Microsoft Access Driver (*.mdb); DBQ=D:/MesDocuments/JAVAIIE/ProjetJAVAIIE/JAVA.mdb;";
- try{
- //connexion a la base de donnees
- Class.forName("sun.jdbc.odbc.JdbcOdbcDriver" );
- Connection con2 = DriverManager.getConnection(data,"","" );
- Statement st2 = con2.createStatement();
- //definition et execution de requete
- ResultSet rs2 = st2.executeQuery("SELECT * FROM ETABLISSEMENT " );
- int i=1;
- numeroetab=0;
- System.out.println(listeetab.getSelectedIndex()+1);
- while (i != (listeetab.getSelectedIndex()+1))
- {
- i=i+1;
- rs2.next();
- }
- numeroetab= rs2.getInt("numet" );
- //numeroetab= rs.getInt(0);
- rs2.close();
- //rs.close();
- //st.close();
- //listeetab.removeAllItems();
- //recupDonnee();
- }
- catch (Exception e){System.out.println("erreur :" +e.toString());}
- }
- /////////////////////////////////////////////////////////////////////////////////////
- }
|
|