1 | |||||||||
Auteur | Messages | ||||||||
---|---|---|---|---|---|---|---|---|---|
mr2222 | #1 Posté le 2/5/2011 à 21:02:00 | ||||||||
Bonjour, Je souhaiterais faire apparaître dans un gridview associé avec gridview_data(row,colonne) des enregistrements dans la bdd crées après la lecture de la bdd et affichage dans le gridview (ce qui fonctionne bien) et à la demande.Dans l'exemple donné,ces enregistrements sont crées avec le button1_click et ils apparaissent bien au fur et à mesure de leur création dans le gridview. Cependant,la méthode ne me parait pas orthodoxe et pas efficace (appel sql):il s'agit des 3 dernières instructions dans button1_click.Y a t'il d'autres solutions? Merci d'avance pour avis,conseils,explications et remarques.
| |||||||||
manu | #2 Posté le 2/5/2011 à 21:56:00 | ||||||||
Avec Gambas ca roule ! | je vois pas ce qui te gène.... moi çà me va :)... Je ne dois pas comprendre la question.... Jeanne d'arc, elle a frit, elle a tout compris ! Config : Manjaro linux (excellent !) XFCE 4.1 (simple et efficace) Gambas 3 dans les dépots (confort total) | ||||||||
linuxos | #3 Posté le 2/5/2011 à 22:32:00 | ||||||||
Un peu de sel, de poivre et la crevette sera... | Bonsoir, Moi non plus je ne vois pas ce qui te gène. C'est la méthode à utiliser. Olivier Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous. | ||||||||
spheris | #4 Posté le 3/5/2011 à 17:48:00 | ||||||||
mr2222, Peux-tu nous expliquer ce qui ne te parait pas ou peu orthodoxe ? | |||||||||
Prokopy | #5 Posté le 3/5/2011 à 18:09:00 | ||||||||
Kinder Pingui | Ce n'est pas gênant de faire une requête SQL si c'est ça qui te tracasse. C'est tout a fait propre (pour être franc, moi personnellement je n'utilise que ça dans mes codes). Par contre, le requête en elle-même n'est pas très propre :
Avec cette requête, tu demandes à ta base de données de récupérer tous les champs puis de te les envoyer … juste pour que tu les comptes. Il serait plus approprié de lui demander de compter les champs et de t'envoyer les résultats. Une requête comme celle-ci ferait bien mieux l'affaire :
Cela te renverra un résultat avec un champ "nblignes" et qui contiendra le nombre de lignes dans ta table. Il te suffira d'y accéder comme pour un champ normal :
Ça c'est la méthode pour si tu n'es pas sûr à l'avance que ta table aura gagné seulement 1 champ quand tu cliqueras. Sinon, si tu utilises la variable kk comme identifiant unique et qu'elle correspond à la longueur de ta table (tu es sûr qu'ils se suivront exactement sans double : 1, 2, 3, 4 … et que le champ à l'id 4 est bien le quatrième), alors tu peux tout simplement l'utiliser pour définir le nombre de lignes de ton GridView :
Voilà comment on passe d'un programme qui rame à un programme rapide. Par contre essaye de trouver des noms plus explicites que kk pour tes variables. Sinon c'est génant de s'y retrouver après (sans mauvais jeu de mot. ). La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi. Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi. | ||||||||
mr2222 | #6 Posté le 4/5/2011 à 22:27:00 | ||||||||
bonjour, Voici quelques explications et précisions supplémentaires: 1 - point de départ:J'ai une bdd avec par ex 10 enreg dans ma table.Pour les afficher j'utilise le gridview associé avec gridview_data pour l'affichage "automatisé" suite à la requète "SELECT" dans le gridview.Ceci fonctionne très bien. 2- Maintenant j'ajoute un enregistrement dans ma table(via le bouton_click dans l'exemple donné ou par tout autre moyen - textbox etc...). ET je veux faire apparaitre dans le gridview ,je dis bien les anciens enreg + le nouveau. Si j'avais 10 enreg au début, je dois visualiser 11 enreg. 3- Et la question que je me posais est la suivante:est-ce vraiment la bonne méthode que d'utiliser à chaque nouvel enreg que je crée et que je valide une requète SQL balayant la totalité de la table?Imaginez la situation suivante:100 enreg nouveaux=100 requètes Voila pour le pb posé.Si j'ai bien compris il n'y a guère d'autre solution avec l'utilisation de gridview_data Pour ce qui concerne le sélect "count(*)..." je n'ai pas réussi à le faire fonctonner car il me retourne constamment le nombre 1 ou me renvoie une erreur lors de l'exécution de gridview_data. De toute facon,il me parait nécessaire d'obtenir les data pour qu'ils s'affichent.Mais,peut-etre que quelque chose m'echappe. Amities. | |||||||||
gambix | #7 Posté le 19/5/2011 à 08:38:00 | ||||||||
Faire simple ! | ce qui est kk c'est le faite d'utiliser une requête pour donner le compte a la gridview et une pour la remplir ! normalement on utilise la même ! vu qu'on remplis la grid view avec cette série dans le genre private hres as result private hcon as connection = new connection public sub _new() hcon.host = localhost hcon. ... blabla end public sub button1_click() hres = db.exec(blabla) gridview1.count = hres.count end Public sub GridView1_Data(row,col) hRes.Moveto(row) GridView.Data.text = hres!nom end c'est du pseudo code ... c'est juste pour la comprendenture du principe:) Moins de texte dans une signature c'est agrandir son espace. | ||||||||
1 |