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 :

IF ; switch et déclaration de variables csharp asp.net


Sujet :

C#

  1. #1
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 42
    Par défaut IF ; switch et déclaration de variables csharp asp.net
    Dans ma "private void" où je charge mes labels

    et dans mon "termLabel", j'affiche les numéros de boîte

    Voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mTermLabel.Text = priceOfferStruct.Term.ToString();
    Plus loin, j'ai des variables (Publication_ID et MessagePrime) avec le bouton...

    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
    protected void SubscribeButton_Click(object sender, System.EventArgs e)
    		{
    			SubscribeButton.Enabled = false;
    			string strFacturation;
     
    			strFacturation = (string)Session["Facturation"];
     
     
    			if (strFacturation != "EnCours")
    			{
     
    				string Publication_ID = (string)Session["PubID"]; // variable recuperer dans ecran precedent
     
     
    				string PublicationDescription = (string)Session["PublicationDescription"];
     
     
     
     
    				using (System.IO.StreamWriter SW = new System.IO.StreamWriter(Server.MapPath("toto/nouveau/Data_" + strDate + "_".csv"))) // creation de fichier data
     
     
    					{
                                                                                                    
                                    SW.WriteLine(priceOfferStruct.Term.ToString() + ";"+ Publication_ID + ";");
                                                            SW.Close();
                                            }
    			}
    		}
    Jusqu'au là, tout va bien, l'application créée le fichier data (data_20122002.csv) et à l'intérieur de ce fichier, il y a le nombre de boîte et publication id, sans erreur.

    Je vais alors ajouter une phrase avec des conditions :


    Il faut que je voiesi le nombre est plus grand que 18 boîtes...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(priceOfferStruct.Term > 18)
    Ensuite si le nombre de boîtes est plus que 18, il faut comparer avec PUB ID...[Publication_ID]
    Si mon Publication_ID est BOI1, Mon message [MessagePrime] : "il faut ajouter 1 boîte gratuite"
    Si mon Publication_ID est BOI2, Mon message : "il faut ajouter 2 boîtes gratuites"



    sinon Mon message [MessagePrime] est vide : ""



    Alors, je déclare ma variable MessagePrime
    j'ai fait 1re condition, avec If [if(priceOfferStruct.Term > 18)]
    ensuite une switch [switch (Publication_ID)] avec 2 conditions [case "BOI1"] et [case "BOI1"]

    Et je récupère la valeur de MessagePrime et je mets dans SW.WriteLine...

    Est-ce que jusqu'au là c'est clair ?

    Comment je peux faire ?

    Voici ce que je pensais :

    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
    54
    55
    56
    protected void SubscribeButton_Click(object sender, System.EventArgs e)
    		{
    			SubscribeButton.Enabled = false;
    			string strFacturation;
     
    			strFacturation = (string)Session["Facturation"];
     
     
    			if (strFacturation != "EnCours")
    			{
     
    				string Publication_ID = (string)Session["PubID"]; // variable recuperer dans ecran precedent
     
     
    				string PublicationDescription = (string)Session["PublicationDescription"];
     
     
    //*-*-*-*-*-*-*-*--------------- nouveau code ajouter pour les boites
    				public string MessagePrime; // mon nouvelle variable
     
    				   if(priceOfferStruct.Term > 18)
     
    					{
    					  switch (Publication_ID)
    					    {
    						case "BOI1":
     
    						    MessagePrime = "il faut ajouter   1 boite gratuite";
    						    break;
     
    						    case "BOI2":
     
    						     MessagePrime = " il faut ajouter  2 boites gratuites";
    						     break;
     
    					     }
    					 }
    				     else
    					 {
    					   MessagePrime = "";
    					 }
     
     
    //*-*-*-*-*-*-*-*--------------- nouveau code ajouter pour les boites FIN
     
     
    				using (System.IO.StreamWriter SW = new System.IO.StreamWriter(Server.MapPath("toto/nouveau/Data_" + strDate + "_".csv"))) // creation de fichier data
     
     
    					{
                                                                                                    
                                              SW.WriteLine(priceOfferStruct.Term.ToString() + ";"+ Publication_ID + ";"+ MessagePrime + ";");
                                                            SW.Close();
                                            }
    			}
    		}
    Mais je ne sais pas où je me trompe ? Vous pouvez m'aider ?

  2. #2
    Membre Expert
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Par défaut
    Je n'ai pas compris ta question...

    Tu décris ce que tu fait, puis tu demande comment faire ?

    Qu'est-ce que tu veux faire exactement ? (sans trop détailler comme tu l'as déjà fait)

    As-tu un message d'erreur ?

    Dans tout les cas, je te conseille de lire (et de relire) cet excellent cours de Serge Tahé : http://tahe.developpez.com/dotnet/csharp/
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  3. #3
    Max
    Max est déconnecté
    Expert confirmé

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Par défaut
    Bonjour.

    Effectivement, ton message n'est pas très clair

    A première vue, déjà, il y a une erreur dans ta fonction SubscribeButton_Click :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public string MessagePrime;
    Pas de niveau de protection pour une variable déclarée au sein d'une fonction, ce qui donne :
    Pour le reste, on attend des précisions

  4. #4
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 42
    Par défaut laedit
    Bonjour laedit,

    en fait si mon if et switch est correct ou non ? est ce que j'ai bien déclarer mon variable MessagePrime ?

    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
    				public string MessagePrime; // mon nouvelle variable
     
    				   if(priceOfferStruct.Term > 18)
     
    					{
    					  switch (Publication_ID)
    					    {
    						case "BOI1":
     
    						    MessagePrime = "il faut ajouter   1 boite gratuite";
    						    break;
     
    						    case "BOI2":
     
    						     MessagePrime = " il faut ajouter  2 boites gratuites";
    						     break;
     
    					     }
    					 }
    				     else
    					 {
    					   MessagePrime = "";
    					 }

  5. #5
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 42
    Par défaut eusebe19
    Bonjour eusebe19,

    Quand je n'ai pas met mon nouveau code ( //*-*-*-*-*-*-*-*--------------- nouveau code ajouter pour les boites) ça marche...

    Quand je mets mon code, il y a un message d'erreur

    Compiler Error Message: CS1513: } expected<br/>
    <br/>
    Source Error:<br/>
    <br/>
    Line 354: <br/>
    Line 355: string Subscription_Id = (string)Session["Subscription_Id"];<br/>
    Line 356: string Publication_ID = (string)Session["PubID"];<br/>
    Line 357://*-*-*-*-*-*-*-*--------------- nouveau code ajouter pour les boites<br/>
    Line 358: public string MessagePrime; // mon nouvelle variable
    Pourtant, j’ai compté les accolades… Il y en a 35 ouvrants et 35 fermants…

  6. #6
    Membre Expert
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Par défaut
    Citation Envoyé par laedit Voir le message
    Dans tout les cas, je te conseille de lire (et de relire) cet excellent cours de Serge Tahé : http://tahe.developpez.com/dotnet/csharp/
    Je pense qu'il vaut mieux que tu commence par lire ce cours
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  7. #7
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 42
    Par défaut
    j'ai recuperé le pdf
    ftp://ftp-developpez.com/tahe/fichie...csharp2008.pdf

    je vais lire petit à petit

    Merci pour cela...

    En outre, j'ai supprimé le mot [public] dans ma déclaration de variable
    public string MessagePrime; // mon nouvelle variable

    c'est comme cela...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string MessagePrime; // mon nouvelle variable
    alors j'ai avancé un peu mais je pense que ma switch n'est pas bonne...

    Compiler Error Message: CS0165: Use of unassigned local variable 'MessagePrime'

    Source Error:

    Line 413: mail.BodyFormat = MailFormat.Html;
    Line 414:
    Line 415: mail.Body = "<p style=\"font-family:'Trebuchet MS', Arial, Helvetica, sans-serif\" \"font-size:14px>\"<strong><hr />BAYARD JEUNESSE <br />"+ MessagePrime + "</p>";
    Line 416:
    Line 417:


    Line: 415

  8. #8
    Membre Expert
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Par défaut
    C'est tout simplement que PrimeMessage n'a jamais été assigné avant que tu ne l'utilise.

    Tu peux par exemple l'initialiser en même temps que tu le déclare.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    string MessagePrime = String.Empty; // ma nouvelle variable est une chaîne de caractère vide
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  9. #9
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 42
    Par défaut la solution
    Merci Laedit,

    Ça marche...
    donc il faut toujours assigner la variable dans C# même si c'est vide...

    Super merci

    donc voici la solution complète :
    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
    // string MessagePrime; // mon nouvelle variable mais non assigné Il faut le assigner : String.Empty; 
    string MessagePrime = String.Empty; // mon nouvelle variable
    	if(priceOfferStruct.Term > 18)
     
    	{
    		switch (Publication_ID)
    			{
    			    case "BOI1":
    			    MessagePrime = "il faut ajouter   1 boite gratuite";
    			    break;
     
    			    case "BOI2":
    			    MessagePrime = " il faut ajouter  2 boites gratuites";
    			     break;
                               }
    	}
           else
    	{
    	  MessagePrime = "";
    	}
    bonne journée

  10. #10
    Membre Expert
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Par défaut
    Citation Envoyé par PHPDOS Voir le message
    donc il faut toujours assigner la variable dans C# même si c'est vide...
    Uniquement quand tu t'en sers
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

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

Discussions similaires

  1. Questions sur switch et déclarations de variables
    Par Iron-Avenger dans le forum Débuter
    Réponses: 11
    Dernier message: 12/06/2013, 16h59
  2. Réponses: 1
    Dernier message: 08/01/2010, 17h28
  3. Transmission variables javascript asp.net
    Par oclone dans le forum ASP.NET
    Réponses: 13
    Dernier message: 24/12/2008, 15h10
  4. variable Session(asp.net) et Cookie dans Flash
    Par SirTurbo dans le forum Flash
    Réponses: 4
    Dernier message: 29/05/2007, 04h27
  5. [debutant][Portée] Déclaration de variable .....
    Par Slein dans le forum Langage
    Réponses: 4
    Dernier message: 07/05/2004, 10h43

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