Un numéro offert




Recherche :

impossible d'ouvvrir une bd hsql

Modérateurs: fredericmazue, webmaster

Messagede Niroken » Lun Jan 05, 2009 11:13

Hello

merci encore pour vos consigne.

Et comment donc, si c est pas respecté, va y avoir du coup de fouet :D

Par rapport à ta question, deja, tu as visiblement deux données à transmettre :
- nom_article
- num_fournisseur

Donc il va falloir logiquement que tu implémentes ta fenetre pour mettre deux JTextField, un associé a chaque élément.

Ensuite le fait est que mon ancien code affiche le contenu du JTextField dans la console uniquement parceque j'ai fait :
Code: Tout sélectionner
System.out.println(mTextField.getText());


Ce qui était important ce n'était pas tellement l'affichage, mais comment récupérer le contenu d'un JTextField, au moyen de JTextField.getText();

Pour rester cohérent avec ton code d'avant, le code de l'actionPerformed devra ressembler à ceci :
Code: Tout sélectionner
public void actionPerformed(ActionEvent pEvent) {
    TestJDBC1 vTestJDBC1 = new TestJDBC1();
    vTestJDBC1.Ajouter(mNomArticleTextField.getText(), mNumFournisseurJTextField.getText());
}


Bonne chance,
Niroken
Niroken
Membre permanent
Membre permanent
 
Messages: 220
Inscription: Lun Juin 04, 2007 4:22

Messagede timejava » Mar Jan 06, 2009 4:49

bonjour,

j'ai ajouter le classe SimpleFrame à mon code mais j'ai un souci au niveau de code suivant
Code: Tout sélectionner
TestJDBC1 vTestJDBC1 = new TestJDBC1();       
vTestJDBC1.Ajouter(m1TextField.getText());

il me propose de faire un bloc try catch comme suivant:
Code: Tout sélectionner
try {
               vTestJDBC1.Ajouter(m1TextField.getText());
   } catch (Exception e) {               // TODO Auto-generated catch block
      e.printStackTrace();
   }

donc je suis bloque a ce niveau
timejava
Membre
Membre
 
Messages: 26
Inscription: Mar Déc 23, 2008 6:14

Messagede fredericmazue » Mar Jan 06, 2009 5:03

En Java certaines exceptions sont dites contrôlées. Concrètement ça veut dire que le programmeur doit s'en occuper.

Tu as deux possibilités:

1) tu déclares ta méthode comme pouvant lever l'exception avec une clause throws:

exemple void ma_methode throws l_exception_en_question () '
}

2) Soit tu acceptes ce que tu propose ton éditeur, c'est à dire mettre ton code dan un bloc try et intercepter l'exception dans le bloc catch qui va avec.
Frédéric Mazué
fmazue[at]programmez.com
frederic[at]solutions-logiciels.com
fredericmazue
Equipe Programmez!
Equipe Programmez!
 
Messages: 2142
Inscription: Sam Mar 25, 2006 12:42

Messagede timejava » Mar Jan 06, 2009 5:11

j'ai déjà testé le bloc try catch donc l'excution est ok ,mais lorsque je vérife la bdd il y a aucun changement aucune information ajouter.
timejava
Membre
Membre
 
Messages: 26
Inscription: Mar Déc 23, 2008 6:14

Messagede Niroken » Mar Jan 06, 2009 5:32

Hello,

j'ai déjà testé le bloc try catch donc l'excution est ok


Donc on est bien d'accord, tu n'as aucun message d'erreur dans ta console et tu as bien un "e.printStackTrace()" dans ta clause catch?

Si ce n'est pas le cas, si une exception est remontée, ou tu l'aurais manquée ou tu ne la verras pas....

Sinon en faisant un retour arrière sur ton code, j'ai vu que tu faisais des
Code: Tout sélectionner
SaisirEntier();

méthodes qui lisent sur ton entrée standard les infos que tu vas saisir.

As tu bien supprimé ces méthodes? pcke sinon, ca va te bloquer ton programme jusqua ce que tu saisisses qq chose sur l'entrée standard.

Sinon ben comme je n'ai pas plus d'idées, il faudrait que tu postes ton code final pour qu'on voit.

Bonne chance,
Niroken
Niroken
Membre permanent
Membre permanent
 
Messages: 220
Inscription: Lun Juin 04, 2007 4:22

Messagede timejava » Mar Jan 06, 2009 5:59

Je vous éxplique avant de passer à l'utilisation de ma bdd principale j'ai crée une nouvelle bdd avant un table avec un seul colone que j'ai nommé "nom" (juste pour tester).
avant de recevoir ta réponce j'ai enlevé SaisirEntier();
mais il me demande de initialisé mon variable donc j'ai initialisé ce variable=null donc la valeur null est enregistré dans la bdd.
Voila mon code pour ajouter une donnée.
class simpleframe:
Code: Tout sélectionner
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;

public class Simple extends JFrame {

    private static final long serialVersionUID = 1L;
   
    private JButton mActionButton;
    private JTextField m1TextField;
   
   
    public Simple() {
        setSize(new Dimension(200, 100));
        setLayout(new FlowLayout());
       
        mActionButton = new JButton("Valider");
        mActionButton.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent pE) {
                // Ici tu devras passer en paramètre le contenu 
                // du textField une méthode qui interagit avec la BDD.
                // D après ton code précédent ca donnerait :
                // ******************************************* //
                 TestJDBC1 vTestJDBC1 = new TestJDBC1();                 
             try {
               vTestJDBC1.Ajouter(m1TextField.getText());
            } catch (Exception e) {
               System.out.println("attention");
               
            }
            
                // ******************************************* //
                // Il faudra changer la signature de TestJDBC1.Ajouter();
            }
           
        });
       
        m1TextField = new JTextField(10);
       
       
        add(m1TextField);

        add(mActionButton);
       
        setVisible(true);
        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    }
    public static void main(String[]args){
       Simple sf=new Simple();
    }

}

class testjdbc1:
Code: Tout sélectionner
import java.sql.*;

public class TestJDBC1 {


   public void Ajouter(String string,String m2,String string2)throws Exception{
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      Connection Cn=DriverManager.getConnection("jdbc:odbc:SourceTest","","");
      
      Statement S=Cn.createStatement();
      int num_article = 0;
      ResultSet rs=S.executeQuery("select num_article from article where num_article="+num_article);
      if(rs.next()){
         System.out.println("cet article existe déjà");
      }
      else{
         String nom_article = null;
         int num_fournisseur =0;
         String req="insert into Article values("+ num_article +",'"+ nom_article +"'," + num_fournisseur + ")";
         S.executeUpdate(req);

         System.out.println("Ajout a ete effectuee");
         Cn.close();
      }      
   }
}

le class testjdbc1
Code: Tout sélectionner
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;


public class TestJDBC1 {
   String nom;
   Saisie S=new Saisie();
   public TestJDBC1(){
      
   }
   public void Ajouter(String m1TextField)throws Exception{
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      Connection Cn=DriverManager.getConnection("jdbc:odbc:Test","","");


      String nom; 
      Statement s=Cn.createStatement();
      ResultSet rs=s.executeQuery("select nom from Test where nom="+nom);
      if(rs.next()){
         System.out.println("cet article existe déjà");
      }
      else{
         String req="insert into Test values('"+nom+"')";
         s.executeUpdate(req);

         System.out.println("Ajout a ete effectuee");
         Cn.close();
      }      
   }
}


merci encore :D :D :D
timejava
Membre
Membre
 
Messages: 26
Inscription: Mar Déc 23, 2008 6:14

Messagede timejava » Mar Jan 06, 2009 6:05

pour la classe testjdbc1 cest le deuxieme code qui correcte :lol: :lol:
timejava
Membre
Membre
 
Messages: 26
Inscription: Mar Déc 23, 2008 6:14

Messagede Niroken » Mar Jan 06, 2009 6:15

Ben d'après ton code, tu as 2 choix possibles,

Ou ton enregistrement existe et tu verras sur la console :
"cet article existe deja"
Ou il n existe pas et tu verras :
"Ajout a ete effectuee"

Que vois tu sur cette console?

Bonne chance,
Niroken
Niroken
Membre permanent
Membre permanent
 
Messages: 220
Inscription: Lun Juin 04, 2007 4:22

Messagede timejava » Mar Jan 06, 2009 6:24

pour la premier fois j'ai "Ajouter a ete effectue" donc il a ajouté le variable "null" à mon tableu mais aprés j'ai "cet article existe déja".
timejava
Membre
Membre
 
Messages: 26
Inscription: Mar Déc 23, 2008 6:14

Messagede timejava » Mar Jan 06, 2009 7:35

j'attend vos consigne ,,please help me
timejava
Membre
Membre
 
Messages: 26
Inscription: Mar Déc 23, 2008 6:14

Messagede Niroken » Mar Jan 06, 2009 8:30

Voici mes consgnes jeune padawan :) :

Alors tt d'abord, tu auras remarqué que tu insert dans ta table test une valeur issue de la variable "nom"
Code: Tout sélectionner
insert into Test values('"+nom+"')


Bon nom est initialisée un peu plus haut dans le code :
Code: Tout sélectionner
String nom;

Mais manque de chance, entre les deux instructions "nom" n'est jamais valorisée, donc cette variable est nulle.
Pour le coup tu insères null dans ta base ce qui est tt à fait logique.

Il faudrait faire :
Code: Tout sélectionner
String nom = m1TextField;


Ca marchera bcp mieux :)

Bonne chance,
Niroken
Niroken
Membre permanent
Membre permanent
 
Messages: 220
Inscription: Lun Juin 04, 2007 4:22

Messagede timejava » Mar Jan 06, 2009 8:54

merci infiniment pour ce code mais j'ai rencontre un souci ,pour la premierr fois ca marche mais si j'essye dans enregistre pour la deuxieme fois j'ai le message :"cet article existe déjà".
timejava
Membre
Membre
 
Messages: 26
Inscription: Mar Déc 23, 2008 6:14

Messagede Niroken » Mar Jan 06, 2009 9:09

Tu ne renseignes pas deux fois le même par hasard?
Niroken
Membre permanent
Membre permanent
 
Messages: 220
Inscription: Lun Juin 04, 2007 4:22

Messagede timejava » Mar Jan 06, 2009 9:23

pardon j'ai pas compris ta question
timejava
Membre
Membre
 
Messages: 26
Inscription: Mar Déc 23, 2008 6:14

Messagede timejava » Mar Jan 06, 2009 9:32

non j'ai utiliser des deux noms déférents
timejava
Membre
Membre
 
Messages: 26
Inscription: Mar Déc 23, 2008 6:14

PrécédenteSuivante

Retourner vers JAVA

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités