Squall NTCK Posté(e) le 20 mai 2004 Partager Posté(e) le 20 mai 2004 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"; de votre aide Lien vers le commentaire Partager sur d’autres sites More sharing options...
FilouLeHibou Posté(e) le 20 mai 2004 Partager Posté(e) le 20 mai 2004 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 More sharing options...
Squall NTCK Posté(e) le 20 mai 2004 Auteur Partager Posté(e) le 20 mai 2004 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 More sharing options...
FilouLeHibou Posté(e) le 20 mai 2004 Partager Posté(e) le 20 mai 2004 Parcequ'en fait, le select n'est que l'intitulé de ta requete. Ensuite il faut que tu l'éxecutes parceque là, ton s1 n'est qu'un texte avec pour valeur "select..." Mais je peux pas t'aider bcp plus, y'aura bien qq'un de calé qui va passé Lien vers le commentaire Partager sur d’autres sites More sharing options...
Squall NTCK Posté(e) le 20 mai 2004 Auteur Partager Posté(e) le 20 mai 2004 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 More sharing options...
Squall NTCK Posté(e) le 21 mai 2004 Auteur Partager Posté(e) le 21 mai 2004 Un petit 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 More sharing options...
Squall NTCK Posté(e) le 21 mai 2004 Auteur Partager Posté(e) le 21 mai 2004 Ben voila j'ai trouvé 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 Maintenant, j'ai le même probleme avec mes JTables Bon J'y retourne Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sentinel Posté(e) le 21 mai 2004 Partager Posté(e) le 21 mai 2004 Pour ton erreur de No Row Count... Vérifie bien que tu utilises un executeQuery() pour faire ton select, et non pas un executeUpdate() Lien vers le commentaire Partager sur d’autres sites More sharing options...
Squall NTCK Posté(e) le 21 mai 2004 Auteur Partager Posté(e) le 21 mai 2004 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 More sharing options...
Sentinel Posté(e) le 21 mai 2004 Partager Posté(e) le 21 mai 2004 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 More sharing options...
Squall NTCK Posté(e) le 21 mai 2004 Auteur Partager Posté(e) le 21 mai 2004 Bon, j'ai fait ce que tu m'as dit et ca marche nickel 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 de votre aide Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sentinel Posté(e) le 21 mai 2004 Partager Posté(e) le 21 mai 2004 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 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 More sharing options...
Squall NTCK Posté(e) le 22 mai 2004 Auteur Partager Posté(e) le 22 mai 2004 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 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 More sharing options...
Sentinel Posté(e) le 22 mai 2004 Partager Posté(e) le 22 mai 2004 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Squall NTCK Posté(e) le 22 mai 2004 Auteur Partager Posté(e) le 22 mai 2004 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 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 More sharing options...
Squall NTCK Posté(e) le 23 mai 2004 Auteur Partager Posté(e) le 23 mai 2004 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 More sharing options...
Squall NTCK Posté(e) le 23 mai 2004 Auteur Partager Posté(e) le 23 mai 2004 c bon j'ai trouvé private String test (String s) // Test les champs non-Obligatoires { if (s.length()==0) { s = "IS NULL"; } return s; Pour ceux que ca interesse Lien vers le commentaire Partager sur d’autres sites More sharing options...
Squall NTCK Posté(e) le 24 mai 2004 Auteur Partager Posté(e) le 24 mai 2004 Voila le programme est tout a fait fini .... @ ceux qui m'ont aider Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.