2009-08-20 14 views
0

ラベルがlblMessageです。メッセージのデータはSQL Server 2005 DBに保存されます。私のテーブルでは、私はメッセージIDと私のメッセージIDと4行があります。メッセージ1、メッセージ2、メッセージ3、メッセージ4を返します。ユーザーがページを更新するたびにラベルのテキストを回転する必要があります

ユーザーがブラウザをリフレッシュするたびにlblMessageをループさせて、次回のメッセージがMessage 2になるようにします。 ..などなど。

どのように私はVB.NETやC#でこれを行うだろうか?

ありがとうございます!

答えて

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

おかげで、100%を働きました! – Etienne

1

は、あなたの質問にテーブルスキーマを記述していなかったので、あなたのメッセージテーブルには何が含まれている場合、私は知りませんメッセージIDおよびメッセージ以外のもの。別の列を追加することができれば、それをシーケンスのように呼び出すことができ、それをtinyintにすることができます。

メッセージを取得するときに、メッセージIDとシーケンス番号の両方を指定する必要があります。

リフレッシュするたびに、シーケンス番号を増やしてモジュロを4にします(シーケンスは常に0,1,2,3のようになります)。以下のような

何か:

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

とfetchMessageは、単にあなたのクエリを実行します。

Select message 
    From tbl_Messages 
    Where messageID = @messageID 
     and sequence = @sequence 
関連する問題