none
IF switch et déclaration de variable csharp asp.net RRS feed

  • Question



  • IF switch et déclaration de variable 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 :

     

    mTermLabel.Text = priceOfferStruct.Term.ToString();
    

    Plus loin, j'ai des variables (Publication_ID et MessagePrime ) avec le bouton...

     

    		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 vois si le nombre est plus grand que 18 boîtes...

     

     

     

    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 boite gratuite "

    Si mon Publication_ID est BOI2 , Mon message : "il faut ajouter  2 boites 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 :


    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 ?

     


     

    • Modifié aspdos mardi 17 novembre 2009 15:54
    mardi 17 novembre 2009 15:45

Réponses

  • Voila j'ai trouvé la solution.

    D'abord il fallait declarer mon variable

    string MessagePrime  mais pas
    
    
    
     public string MessagePrime;
    ensuite il faut toujours assigner la variable dans C# même si c'est vide... : [String.Empty;]


    alors voici le bon code :

    // 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
    • Marqué comme réponse aspdos mardi 17 novembre 2009 19:25
    mardi 17 novembre 2009 19:23

Toutes les réponses

  • Es-ce que tu as un message d'erreur ou cela s'exécute mais ne fonctionne pas comme cela devrait? Dans le premier cas, envoi-nous l'erreur, dans le deuxième, es-ce que tu as fait une exécution pas à pas?
    Microsoft MVP C# :: mongeon.devrpm.ca
    mardi 17 novembre 2009 15:49
    Modérateur
  • 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

    Source Error:

    Line 354:
    Line 355: string Subscription_Id = (string)Session["Subscription_Id"];
    Line 356: string Publication_ID = (string)Session["PubID"];
    Line 357://*-*-*-*-*-*-*-*--------------- nouveau code ajouter pour les boites
    Line 358: public string MessagePrime; // mon nouvelle variable

    Pourtant, j’ai compté les accolades… Il y en a 35 ouvrants et 35 fermants…

     

    je ne peux pas faire une exécution pas à pas parce que je n'ai pas de visuel studio et je travaille avec Notepad++

    mardi 17 novembre 2009 16:03
  • Voila j'ai trouvé la solution.

    D'abord il fallait declarer mon variable

    string MessagePrime  mais pas
    
    
    
     public string MessagePrime;
    ensuite il faut toujours assigner la variable dans C# même si c'est vide... : [String.Empty;]


    alors voici le bon code :

    // 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
    • Marqué comme réponse aspdos mardi 17 novembre 2009 19:25
    mardi 17 novembre 2009 19:23