2009-08-20 11 views
0

Ich habe eine Bezeichnung namens lblMessage. Die Daten der Nachricht werden in einer SQL Server 2005-Datenbank gespeichert. In meiner Tabelle habe ich eine Nachrichten-ID und dann 4 Zeilen mit meiner Nachrichten-ID. Nachricht 1, Nachricht 2, Nachricht 3 und Nachricht 4.Notwendigkeit, Text in einem Etikett jedes Mal zu drehen, wenn Benutzer die Seite aktualisieren

Ich möchte, dass meine lblMessage jedes Mal eine Schleife durchläuft, wenn der Benutzer seinen Browser aktualisiert, so dass er beim nächsten Aktualisieren die Nachricht 2 ... .. und so weiter und so weiter.

Wie würde ich das in VB.NET oder C# tun?

Vielen Dank im Voraus!

Antwort

2

VB.NET

Private Shared messageNumber as Integer 

Public Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    Select Case messageNumber 
     Case 0 
      lblMessage.Text = MESSAGE_1 
     Case 1 
      lblMessage.Text = MESSAGE_2 
     Case 2 
      lblMessage.Text = MESSAGE_3 
     Case 3 
      lblMessage.Text = MESSAGE_4 
    End Select 
    messageNumber = (messageNumber + 1) Mod 4 
End Sub 

C#

private static int messageNumber; 

public void Page_Load(object sender, System.EventArgs e) 
{ 
    switch (messageNumber) { 
     case 0: 
      lblMessage.Text = MESSAGE_1; 
      break; 
     case 1: 
      lblMessage.Text = MESSAGE_2; 
      break; 
     case 2: 
      lblMessage.Text = MESSAGE_3; 
      break; 
     case 3: 
      lblMessage.Text = MESSAGE_4; 
      break; 
    } 
    messageNumber = (messageNumber + 1) % 4; 
} 
+0

Danke, arbeitete 100% !! – Etienne

1

Sie haben nicht das Tabellenschema in Ihrer Frage beschreiben, so dass ich weiß nicht, ob Ihre Nachricht Tabelle alles enthält anders als eine Nachrichten-ID und die Nachricht. Wenn Sie eine weitere Spalte hinzufügen können, könnten Sie es so etwas wie Sequenz nennen und es zu einem Tinyint machen.

Wenn Sie jetzt Ihre Nachricht abrufen, müssen Sie sowohl die Nachrichten-ID als auch die Sequenznummer angeben.

Jedes Mal, wenn Sie aktualisieren, erhöhen Sie die Sequenznummer und erhalten seinen Modulo auf 4 (so dass die Reihenfolge immer 0, 1, 2 oder 3 ist).

so etwas wie:

sequence = sequence++ % 4; 
lblMessage.Text = fetchMessage(MessageID, sequence); 

und fetchMessage führt einfach Ihre Anfrage:

Select message 
    From tbl_Messages 
    Where messageID = @messageID 
     and sequence = @sequence 
Verwandte Themen