Passer dataset dans une fonction

olibara Messages postés 666 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 mars 2010 - 8 févr. 2008 à 10:04
olibara Messages postés 666 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 mars 2010 - 8 févr. 2008 à 21:08
Bonjour

je suis débutant en C# et j'essaye de trouver les meilleures methode pour effectuer certaines taches

1- J'effectue un query mysql qui me remplit un dataset
2- je charge un datagrid en utilisant comme datasource dataset.table[0]

A ce moment si j'ai bien capté j'ai le resultat de mon query deux fois qq part en memoire 1 fois dans dataset une fois dans le datagridview

je voudrais appeller une fonction qui doit parcourir et utiliser sans le modifier le contenu de cette table

la table contient +/- 3000 rows
chaque row contient 15 items
dans la fonction, trois de ces items m'intéressent

que vaut-il mieux passer a la fonction (qui doit avoir visibilité de ces trois items pout l'ensemble des rows)
1- le dataset
2- le datagridview
3- autre chose ?

Merci pour votre précieuse aide !

4 réponses

Kleidp Messages postés 124 Date d'inscription jeudi 5 juin 2003 Statut Membre Dernière intervention 10 février 2008
8 févr. 2008 à 13:05
Passe directement le dataSet. De toute manière tu va passer un pointeur à ta fonction (C'est 'transparent' en C#), c'est pas comme si un deuxieme dataSet allait être créé en mémoire.

fonction(dataSet1)
0
olibara Messages postés 666 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 mars 2010 6
8 févr. 2008 à 14:16
Merci,

J'essaye ça
0
bidou_01 Messages postés 134 Date d'inscription dimanche 1 octobre 2006 Statut Membre Dernière intervention 19 mai 2008 1
8 févr. 2008 à 19:51
Hello,

Si la fonction est dans ta classe tu peux imaginer mettre ton DataSet en variable de classe (ie pas déclaré dans une méthode).
Comme ça tu n'a même pas à passer quoi que se soit en paramètre.

Sinon comme Kleidp l'a dit, le passage par référence est transparent en C# !
Une classe est ce que l'on appel un type référence, c'est-à-dire que lorsque tu manipule des classes entre elle, tu ne vas pas récupérer l'objet lui même, mais l'adresse mémoire (référence) qui pointe cet objet. (en gros)


Comme tu débutes en C#, il est important de bien comprendre ce mécanisme, donc si ce n'est pas fait, je te conseil cet article



Cordialement,

Bidou_01
 


<hr />
http://www.corioland.eu
0
olibara Messages postés 666 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 mars 2010 6
8 févr. 2008 à 21:08
Merci Bidou

Je débute en C# mais j'ai quelques années de vol en C natif
Donc j'ai pris certaines habitudes comme essayer de proscrire l'usage de déclaration publique et de passer l'information via des pointeurs de structures container, ancetres des classes et objets.

Cela etant les seules vrai règles que j'essaye de suivre sont
- lisibilité du code
- performance
- eviter de de trimbaler les datas partout (en C je suis un accro des pointeurs)

En C# j'essaye de prendre des bonnes habitudes des le debut.
0
Rejoignez-nous