2009-08-20 47 views
0

我有一个名为lblMessage的标签。消息的数据保存在SQL Server 2005数据库中。在我的表格中,我有一个消息ID,然后4个消息ID。消息1,消息2,消息3和消息4.每次用户刷新页面时需要旋转标签中的文本

我希望我的lblMessage每次用户刷新浏览器时都会经历一个循环,以便当他刷新一次后,下一条消息将成为消息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 2009-08-21 06:37:03

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