Partager un dataset entre 2 fenetres...

kissskool Messages postés 1 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 18 juillet 2005 - 18 juil. 2005 à 17:31
scortex84 Messages postés 379 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 20 avril 2011 - 18 juil. 2005 à 18:59
Bonjour,

Je voudrais savoir comment faire pour partager un dataset entre 2 forms.

Je m'explique :

- Dans le code de ma fenetre principale je declare un dataset (dim dtset as new dataset()), et je le remplie de donnees

- Je voudrais acceder aux donnees de ce dataset a partir de toutes les autres fenetres que je cree

-Pour l'instant je cree a chaque fois un nouveau dataset, et c'est pas terrible

alors comment partager mon dataset??

Merci

2 réponses

cs_69chris Messages postés 318 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 30 décembre 2005 1
18 juil. 2005 à 17:40
Utilise un singleton.

Bon, je m'explique.

Tu fais une classe qui hérite du DataSet "NewDataSet" et qui fait les opérations que tu veux.

Tu ne fais qu'un constructeur privé.

Tu ajoute une propriété privée Shared _monDst du type "NewDataSet"
méthode Shared du genre "GetInstance()" avec le code qui suit :



public shared function GetInstance() as NewDataSet

if _monDst is Nothing then

_monDst = new NewDataSet()

end if

return _monDst

end function



Et voilà, une seule instance, pas besoin de se prendre la tête.



Si t'es pas codeur dans l'ame, tu peux aussi définir ton DataSet comme public dans la form qui existe tout le temps....



Chris
0
scortex84 Messages postés 379 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 20 avril 2011 1
18 juil. 2005 à 18:59
Bonsoir,

Pour reprendre le second point de Chris, moi perso pour ne pas m'embeter, je déclarerais le dataset dans un module et de type "Public", ainsi toutes les fenetres pourront acceder aux données qu'il contiendra, les modifier, les ajouter, les supprimer.

Car si le dataset est déclaré dans une fenetre (le main par exemple), après pour y acceder c un chouilla plus galere... (faut déclarer la fenetre en public, etc, etc).

Par contre, dans les deux cas, attention la gestion du dataset devient alors plus compliquée : il faut etre très rigoureux et bien penser à le vider par exemple avant toute nouvelle requete sur une table existante.

Voilou

Seb.
0