Meilleur auteur de réponses
IF switch et déclaration de variable csharp asp.net

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
Réponses
-
Voila j'ai trouvé la solution.
D'abord il fallait declarer mon variable
string MessagePrime mais paspublic 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
Toutes les réponses
-
-
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 variablePourtant, 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++
-
Voila j'ai trouvé la solution.
D'abord il fallait declarer mon variable
string MessagePrime mais paspublic 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