2012-04-11 19 views
1

Ich mache eine Webanwendung in ASP.net/C#, wo eine zufällige Zahl (num1) bei einem Page_Load -Ereignis generiert wird. Auf der Webseite gibt es eine Schaltfläche. Wenn der Benutzer auf diese Schaltfläche klickt, wird eine neue Zufallszahl (num2) generiert und zu der vorherigen in einem Button_Click-Ereignis hinzugefügt (+). Dies geht unendlich weiter (fügen Sie dem letzten Zusatz eine neue Zufallszahl hinzu). Ich habe versucht, Sitzungen zu verwenden, ich habe kein klares Beispiel gefunden. Ich würde Ihre Vorschläge und Hilfe sehr schätzen.Hinzufügen von zwei Zahlen in einer Sitzung

Code:

private static Random random = new Random(); 
     private int randomNumber(int min, int max) 
     { 
      return random.Next(min, max); 
     } 


     protected void Page_Load(object sender, EventArgs e) 
     { 
      number1 = randomNumber(1, 10); 
     } 

     protected void Button1_Click(object sender, EventArgs e) 
     { 
      int number2 = randomNumber(1, 10); 
      Session["number_x"] = number2; 
      number2 += number1; 
     } 

Lets auf der page_load sagen, dass die erzeugte Zufallszahl ist 4. Der Benutzer kann dann auf die Schaltfläche klickt, die eine neue Zufallszahl erzeugt können sagen, 5. Nun sollte 5-4 = 9 hinzugefügt werden Wenn der Benutzer erneut auf die Schaltfläche klickt und erneut eine neue Nummer generiert, sagen Sie 5, also sollte die Sitzung nun 14 usw. haben.

Danke.

+0

Könnten Sie mehr klar sein? Sie möchten den Zusatz in der Sitzungsvariablen hinzufügen? –

+0

@FrancisP Bitte überprüfen Sie die Post nach dem Code Ich habe es bearbeitet –

Antwort

2

Hmmm, wenn ich Ihre Frage richtig zu lesen, sollte diese Arbeit:

protected void Button1_Click(object sender, EventArgs e) 
{ 
    int number2 = randomNumber(1, 10); 
    if(Session["number_x"] != null) 
    { 
     int number1 = Int.Parse(Session["number_x"]); 
     Session["number_x"] = number1 + number2; 
    } 
    else 
    { 
     Session["number_x"] = number2; 
    } 
} 

Grundsätzlich Sie müssen sehen, um zu überprüfen, ob bereits ein Wert in der Session-Variablen.

Wenn bereits etwas in der Sitzungsvariablen vorhanden ist, müssen Sie es als int analysieren und dann zur neuen Zufallszahl hinzufügen und in der Sitzungsvariablen speichern.

Wenn dort nichts ist, müssen Sie nur die neue Zufallszahl speichern.

+0

Bitte überprüfen Sie die Post nach dem Code, den ich bearbeitet habe –

+0

@JeT_BluE Ihre Änderung ändert nichts wirklich über meine Antwort, aber danke für das Hinzufügen der Details. – jadarnel27

+0

aber Sie haben eine neue int-Nummer 1 deklariert, wie wird das mit der ersten generierten Zufallszahl in Page_Load verknüpft? –

4

Ich glaube, Sie, so etwas tun:

protected void Button1_Click(object sender, EventArgs e) 
{ 
    lock (Session.SyncRoot) 
    { 
     int numberInSession = (int) Session["number_x"]; 
     int number2 = randomNumber(1, 10); 
     int newNumber = numberInSession + number2; 
     Session["number_x"] = newNumber 
    } 
} 
+0

Ich stimme der Lösung zu, aber ich denke, es sollte newNumber = numberInSession + number2; (vielleicht war es ein Tippfehler) – Amaranth

+0

ja war ein Tippfehler - behoben. – gbanfill

+0

@gbanfill Bitte überprüfen Sie den Beitrag nach dem Code, den ich bearbeitet habe –

Verwandte Themen