IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Pb entre 1 instance et une méthode s'appelant mutuelemnt à l'infini..


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 259
    Par défaut Pb entre 1 instance et une méthode s'appelant mutuelemnt à l'infini..
    Pour comprendre le contexte mon nouveau problème survient apres la résolution de celui-ci
    J'ai déclarer mes dropdownlist de ma Form1 en public et avec maForm1 du coup je peux y acceder ça c'est OK, merci !
    Mais le probleme maintenant c'est que dans la classe CodeRequetes je fais donc Form1 maForm1 = new Form1();
    et que dans ma Form1.cs
    je fais appel a ma méthode Afficher();
    du coup ça tourne en boucle
    Afficher fais appel à Form1 maForm1 = new Form1();
    et Form1 maForm1 = new Form1(); fais appel à Afficher()...
    Ya un truc que je dois mal faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    class CodeRequetes
        {
            #region variables
            private string _RequeteNavision; //requete pour l'affichage du tableau
            Form1 maForm1 = new Form1();
            #endregion
     
            #region Propriétés
     
            public String RequeteNavision
            {
                get { return _RequeteNavision; }
            }
            #endregion
     
           /* #region constructeur
            public CodeRequetes()
            {
                maForm1  ;
            }
            #endregion*/
     
            public string Construction_Requete_Liste()
            {
                switch (maForm1.DDL_CHOIX.Text)
                {
                    //Requetes Navisions en fonction de la vue demandée
                    case "VUE_INITIALE":
                        _RequeteNavision = "SELECT  b.Description as Famille, [Item Sub-Family Code 1] as Sfam,  No_, a.Description as Libellé, CAST ([Net Weight]*1000 as INT) as [PoidsNet]," +
                                  "SUBSTRING([Expiration Calculation], 1, 2) as DLC, " +
                                  "[Trademark Code] as [Code Marque],[Trademark Type] as [Type Marque]," +
                                  "[Sales Unit of Measure] as Conditionnement, [Production Family Code] as DateMod, [Production Sub-Family Code 1] as FamProd1," +
                                  " [Production Sub-Family Code 2] as FamProd2, [Production Sub-Family Code 3] as FamProd3, [Production Sub-Family Code 4] as FamProd4," +
                                  "CONVERT(char(10),[Last Date Modified],112) as [Modifié le], [Modified by User] as [Modifié par]," +
                                  "[Last Date Modified]" +
                                  " FROM dbo.Gie$Item a, dbo.[Gie$Item Family_Sub-family] b" + // + Filtre +
                                  " WHERE Blocked='0' AND ([Item Type]='VENTE' OR [Item Type]='ECHANT') " +
                                  " AND a.[Item Familly Code] = b.Code";
     
                        break;
                    case "commercial":
                        break;
                    case "Logistique":
                        break;
                    case "Production":
                        break;
                }
                return _RequeteNavision;
            }
     
     
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
            #region Affichage de la liste
            public void Afficher()
            {
                ClassSQL connexion = new ClassSQL();
                DataSet DS = new DataSet();
     
                CodeRequetes executer = new CodeRequetes();
     
                DS = connexion.RemplirDataset(executer.Construction_Requete_Liste());
                liste.DataSource = DS;
                liste.DataMember = "item"; //on affiche le DS, comme le databind du VB
            }
            #endregion

  2. #2
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Vu l'utilisation que tu fais de Form1 dans ta classe CodeRequetes, le fait de mettre en public tes Combo n'est déjà pas utile (au passage une propriété publique aurait suffit, pas besoin de mettre le contrôle en public).

    Ensuite, comme tu réinstancies un formulaire Form1 ce que tu fais ne fonctionnera jamais (sans parler du problème de boucle) puisque tu n'auras pas les infos correctes : infos du Form1 nouvellement instancié != infos du Form1 qui t'intéresse.

    Au final, tu devrais simplement ajouter en paramètre du constructeur de ta classe CodeRequetes les données à utiliser pour faire ta requête. C'est beaucoup plus simple et tellement plus logique

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 259
    Par défaut
    Pourquoi faire simple quand on peut faire compliqué
    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. OLE pour communiquer entre différente instance d'une application
    Par justgreat dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 12/12/2009, 20h59
  2. Classe: faire la différence entre un attribut et une méthode
    Par rambc dans le forum Général Python
    Réponses: 5
    Dernier message: 15/11/2009, 16h44
  3. communication entre 2 instances d'une application access
    Par funkyjul dans le forum VBA Access
    Réponses: 11
    Dernier message: 11/04/2008, 07h23
  4. Réponses: 11
    Dernier message: 30/06/2007, 04h34
  5. [c#] communiquer entre les instances d'une appli
    Par damned3 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 10/10/2006, 10h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo