Appel dynamique

Résolu
chental Messages postés 31 Date d'inscription vendredi 22 août 2003 Statut Membre Dernière intervention 15 mars 2015 - 22 févr. 2008 à 12:14
chental Messages postés 31 Date d'inscription vendredi 22 août 2003 Statut Membre Dernière intervention 15 mars 2015 - 22 févr. 2008 à 15:26
salut à tous,

Je fais un appel dynamique sur une méthode de ma Form.
Par exemple : l'utilisateur tape : Affichage@toto
Affichage est une méthode et toto le paramètre attendu

Via la Reflexion, j'appelle la méthode avec le Invoke, voici le code :
 t.InvokeMember(Commande,BindingFlags.Default|BindingFlags.InvokeMethod,null,obj,args);

La méthode est bien executée, sauf que dans la méthode je fais appel à une classe qui accède à la base de données et renvoyant un objet de type table qui par la suite remplit un datagrid.

La table est bien renvoyée mais le datagrid n'est jamais rempli.

Voici le code de la méthode Affichage :
oTable.Clear();
            oTable.Dispose();
            oTable=new DataTable();
            string err;
            oTable =cdata.RetournerTableComplete("select * from " + sTable,sTable,out err);
            DgResult.DataSource=oTable

Quelqu'un aurait une idée ?
         

3 réponses

chental Messages postés 31 Date d'inscription vendredi 22 août 2003 Statut Membre Dernière intervention 15 mars 2015 1
22 févr. 2008 à 15:26
J'ai résolu le problème en inserant la cible comme étant la form elle-même.

En effet je faisais : object obj = Activator.CreateInstance(t) et
mettais obj comme cible, forcement la cible avait un handle différent
de ma fenêtre.


Code modifié : t.InvokeMember(Commande,BindingFlags.Default|BindingFlags.InvokeMethod,null,this,args);
3
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
22 févr. 2008 à 13:47
il manque le DgResult.DataBind()...

non ?

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
0
chental Messages postés 31 Date d'inscription vendredi 22 août 2003 Statut Membre Dernière intervention 15 mars 2015 1
22 févr. 2008 à 13:53
Non, car le DataSource suffit amplement.
Quand je teste avec un évenement classique, ma datagrid se remplit normalement.
0
Rejoignez-nous