Aller au contenu

[Java + SQL] -- Recevoir des données


Messages recommandés

Voila, je suis tjrs sur mon projet de fin d'année.....

Mais la je bloque....

La connection à la base de donnée est operationnel.....

maintenant, j'aimerai récupere des valeur ds celle ci.....

mon but, est de recevoir les donnée d'une colonne bien précise dans le but de mettre le resultat dans une combobox

voila ce que j'ai pour le moment

            s1 ="Select * LibelleOs from OS";

            s2 ="Select * NomPrenom from RespReseau";

            s3 ="Select * SoftName from Software";

:smack: de votre aide :francais:

Lien vers le commentaire
Partager sur d’autres sites

Tu sais si ça marche pareil qu'en php??

Car si c la même chose, je peux t'aider sinon, connait pas java.

Toujours est il que les commandes d'appel doivent être les même!

Donc, il faut que tu connecte en faisant:

"select * from OS"

ou "select LibelleOs from OS" > bon dans ton cas

pas les 2, ou alors avec une virgule.

Ensuite, lors de la création de ta combo box, faire une boucle qui te récupère les valeurs avec un while

Lien vers le commentaire
Partager sur d’autres sites

les commandes SQL sont les mêmes, vu que c'est un langage standardisé....

maintenant le

Select * LibelleOs from OS
précise que je veux la colonne Libellé OS de ma table OS, en effet, c une base de données acces, assez compllexe qui plus est, et elle dispose de plusieurs tables.... jusque la je te suis...

sauf que la methode Java, me ramere un entier ( le nbr de résultat apparement ou alors le type de résultat, je ne sais pas trop), le but est de l'integrer dans cette cobmoBox, apparement, je dois jouer avec des vecteurs mais je ne comprend pas trop

Lien vers le commentaire
Partager sur d’autres sites

oui je sais regarde la suite du code

        try

        {

            s1 ="Select * LibelleOs from OS";

            s2 ="Select * NomPrenom from RespReseau";

            s3 ="Select * SoftName from Software";

            // Creattion des requestes MySql

           

            AccesGen.executerInstruction(connect,s1);

            AccesGen.executerInstruction(connect,s2);

            AccesGen.executerInstruction(connect,s3);

            // Variable pour remblir les JComboBx

           

        }

       

        catch(SQLException sq)

        {

         

          JOptionPane.showMessageDialog(null,sq, "Erreur", JOptionPane.ERROR_MESSAGE);

                    // Gestion des erreurs My Squl

        }

En gros, je crée ma requete SQL dans mes String S1,S2,S3, et puis demande à ma class Statique ( AccesGen) d'execute ces instruction sur ma connexion ....

Mais apres je ne sais pas ce que je dois faire

Lien vers le commentaire
Partager sur d’autres sites

Un petit :D car je viens d'avancer dans mon probleme.....

j'ai le code pour mettre mes valeurs dans ma JCombox, mais apparement, j'ai un stress qq part, je vous donne le code et l'erreur

        try

        {

            s1 ="SELECT LibelleOs FROM OS;";

            s2 ="SELECT NomPrenom FROM RespReseau;";

            s3 ="SELECT SoftName FROM Software;";

            // Creattion des requestes MySql

           

            AccesGen.executerInstruction(connect,s1);

            AccesGen.executerInstruction(connect,s2);

            AccesGen.executerInstruction(connect,s3);

            // Variable pour remblir les JComboBx

           

        comRes = new JComboBox(AccesGen.creerVecteur1Colonne(connect, s1));

        comOs = new JComboBox(AccesGen.creerVecteur1Colonne(connect, s2));       

        comSof = new JComboBox(AccesGen.creerVecteur1Colonne(connect, s3));

           

           

        }

       

        catch(SQLException sq)

        {

         

          JOptionPane.showMessageDialog(null,sq, "Erreur", JOptionPane.ERROR_MESSAGE);

                    // Gestion des erreurs My Sql

        }

Et voici l'erreur

Java.sql.SQLException: No row count was produced
Lien vers le commentaire
Partager sur d’autres sites

Ben voila j'ai trouvé :p

        try

        {

            s1 ="SELECT LibelleOs FROM OS;";

            s2 ="SELECT NomPrenom FROM RespReseau;";

            s3 ="SELECT SoftName FROM Software;";

            // Creattion des requestes MySql

            // Variable pour remblir les JComboBx

           

        comRes = new JComboBox(AccesGen.creerVecteur1Colonne(connect, s1));

        comOs = new JComboBox(AccesGen.creerVecteur1Colonne(connect, s2));       

        comSof = new JComboBox(AccesGen.creerVecteur1Colonne(connect, s3));

           

           

        }

       

        catch(SQLException sq)

        {

         

          JOptionPane.showMessageDialog(null,sq, "Erreur", JOptionPane.ERROR_MESSAGE);

                    // Gestion des erreurs My Sql

        }

Voila avec ce code la ca fonctionne :p

Maintenant, j'ai le même probleme avec mes JTables :D Bon J'y retourne

Lien vers le commentaire
Partager sur d’autres sites

:fumer: A ce niveau la tout a l'air ok....

Maintenant encore un nouveau probleme....

Donc, j'affiche ds mon ComboBox, une colone spécifique d'une de mes tables, le but etant de permettre à l'utilisateur de choisir les valeurs qui lui convienntent, donc, logiquement, il ne se passe rien lors du changement de valeur ds la comboBox....

Maintenant, lors d'un autre evenement, activation du bouton ds mon cas, je voudrais recupere les valeurs choisie de mon comboBox, ce qui me permettra d'ajouter un nouvelle enregistrement à ma base ( en Acces)

Lien vers le commentaire
Partager sur d’autres sites

Normalement en appelant macombobox.getSelectedItem() tu récupères le texte tapé (si ta combobox est éditable) ou l'élément sélectionné.

Par contre, comme cette méthode renvoie un Object, tu auras sûrement à faire un cast en String pour obtenir un truc exploitable.

Lien vers le commentaire
Partager sur d’autres sites

Bon, j'ai fait ce que tu m'as dit et ca marche nickel :byebye:

Ca avance, ca avance, tout doucement mais bon il y a du progres....

Nouveau probleme

je recupere la valeur de mes comboBox ds des string, ca c ok, maintenant, je veux obtenir me code de cet valeur....

Je m'explique, ds ma table, j'ai 2 colone, celle qui contient les libellés ( celle utilisée par mes comboBox) et un code propre a chaque entrée....

le but etant de recupérer le code en ayant le libellé....

voila ce que j'ai pour l'instant

            if (ac.getSource()== bouVal)

            {

                s1=((String) comOs.getSelectedItem());

                s2=((String) comSof.getSelectedItem());

                s3=((String) comRes.getSelectedItem());

                // Casting de objet --> String

                s1="SELECT CodeOS FROM OS WHERE LibelleOS='"+ s1 +"'";

                s2="SELECT SoftCode FROM Software WHERE SoftName='"+ s2 +"'";

                s3="SELECT CodeResp FROM OS RespResau WHERE NomPrenom='" + s3 + "'";

                //Requete pour obtenir les Infos (base ComboBox) 

                s4= texDat.getText(); // date

                s4= test(s4); // Test si rempli ou pas

                s5= texDur.getText(); // durée

                s5= test(s5);

                s6= texCom.getText(); // commentaire

                s6= test(s6);

                req = "INSERT INTO Installation(DateInstallation,FkCodeOS,FkSoftCode,CommentaireInstallation,DureeInstallation,FkCodeResp)VALUES (s4,/*Valeur de l'os*/,/*Code du Soft*/,s6,s5,/*Code resp res*/);";

                // Requete pour l'insertion d'une nouvelle Installation

               

                try

                {

                    s1 = ( (String) (AccesGen.creerVecteur1Colonne(connect, s1)).elementAt(0));

                    s2 = ( (String) (AccesGen.creerVecteur1Colonne(connect, s2)).elementAt(0));

                    s3 = ( (String) (AccesGen.creerVecteur1Colonne(connect, s3)).elementAt(0));

                    // Creattion des requestes MySql

                  // AccesGen.executerInstruction(connect, req);

                   

                }

       

                catch(SQLException sq)

                {

               

                    JOptionPane.showMessageDialog(null,sq, "Erreur", JOptionPane.ERROR_MESSAGE);

                    // Gestion des erreurs My Sql

                }

            }

Apperment le probleme ce situe sur cette ligne ci

                    s1 = ( (String) (AccesGen.creerVecteur1Colonne(connect, s1)).elementAt(0));

                    s2 = ( (String) (AccesGen.creerVecteur1Colonne(connect, s2)).elementAt(0));

                    s3 = ( (String) (AccesGen.creerVecteur1Colonne(connect, s3)).elementAt(0));

Il y a 2 possibilités, soit mon casting, soit la mauvaise methode

:chinois: de votre aide :keskidit:

Lien vers le commentaire
Partager sur d’autres sites

Si l'utilisateur ne peut pas rentrer de valeur perso dans la combobox (combobox non éditable), je pense que tu peux faire comme suit :

- tu récupères tes données dans la base : ID + libellé

- pour chacune des données, tu mets l'ID dans un tableau, et le libellé dans la combobox.

- tu appelles macombobox.getSelectedIndex(), qui te renvoie le n° de l'item (appelons-le K) sélctionné dans la combobox (le premier item est le n° 0)

- ensuite tu regardes dans ton tableau des ID à l'index K, et hop tu trouves l'ID qui correspond à l'élément choisi dans la combobox.

- et pour finir, tu n'as plus qu'à faire tes autres requêtes utilisant l'ID...

Si tu permets à l'utilisateur d'entrer des nouveaux items dans la combobox, il faudra faire attention : la méthode getSelectedIndex() renvoie -1 dans ce cas.

Voilà, j'espère que ça t'aide :kimouss:

PS : au fait, les bouquins 'au coeur de Java', en 2 tomes chez Campus Press, sont excellents et pas trop cher. Très didactiques et très précis (écrit encollaboration avec Sun), vraiment très bien pour apprendre le langage mais aussi pour se perfectionner dasn des sujets pointus. Un must !

Lien vers le commentaire
Partager sur d’autres sites

Niveau livre je possede

Java - Comment Programmer de Deitel & Deitel....

Tres bon bouquin, sauf qu'il n'y a rien sur le JAVA/SQL .....

bon j'ai reussi à faire ce que je voulais..... j'ai presque fini l'ajout, il me reste un truc qui ne vas..... la table (imposée par la prof) dispose comme clé primaire d'un numeros, mais malheureusement, celui ci ne s'incremente pas de maniere automatique.... donc je dois gerer cela...... ma requete d'Insertion est tout prete, mais je n'arrive pas a recuper ce foutu numéros et à le mettre dans un int....

voila ce que j'ai essayer et qui ne fonctionne pas

                    vecteur = AccesGen.creerVecteur1Colonne(connect, req2);

                    //nb=((Integer)(vecteur.lastElement())).intValue();

                    nb = vecteur.size();

encore :yes::craint:

Apres je m'occupe de mes affichage (listing) car ca n'a pas l'air au pioint

Lien vers le commentaire
Partager sur d’autres sites

Si c'est Access, normalement tu peux demander à une colonne de s'incrémenter automatiquement. Dans ce cas, il me semble que tu n'as pas besoin de spécifier cette colonne dans ta requête d'insertion, access se débrouillera tout seul.

je sais.....

Mais je peux pas modifier la base, enfin pas modifier la structure :D

C ce que je voulais faire, mais je ne peux pas....

donc faut absolument que je recupere soit

- le nbr de ligne

- la valeur de cette colone du dernier enregistrement

Lien vers le commentaire
Partager sur d’autres sites

Pour finir on a mis un numeros auto....

Preque tout est OK.... on va dire program complete @ 95%

petite question

comment faire un test pour savoir si un string est vide, car j'ai essayer plusieur methode mais ca marche pas ....

j'ai essayer ca

private String  s1;

....

if (s1 == null )

{....}

et ca

private String  s1;

....

if (s1 == "")

{....}

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...