2011-05-01 18 views
0

下面的代碼寫在Timer Tick事件中。只要時間和日期不相同,它就可以正常工作。當時間和日期相同時,它只顯示1條消息。如何顯示同一日期和時間的多個訊息?我認爲這可以完成如果我爲表單創建不同的實例。但我不知道數據庫中會有多少個相同的時間和日期。所以我不能那樣做。有什麼解決辦法嗎?如何創建表單的不同實例

Dim frm As New frmMessage 
Dim nowDate As String = String.Format("{0:M/d/yyyy}", DateTime.Now) 
Dim nowTime As String = String.Format("{0:h:mm tt}", DateTime.Now) 
Dim mySelectQuery As String = "SELECT ReminderID, Date, Time, Subject, Reminder FROM Reminder WHERE Date LIKE '" & nowDate & "' AND Time LIKE '" & nowTime & "'" 
Dim myConnString As String = "Data Source=" & Application.StartupPath & "\Database\SimpleDB.db3" 
Dim sqConnection As New SQLiteConnection(myConnString) 
Dim sqCommand As New SQLiteCommand(mySelectQuery, sqConnection) 

sqConnection.Open() 

Dim sqReader As SQLiteDataReader = sqCommand.ExecuteReader() 

Try 
    If sqReader.HasRows = True Then 

     While sqReader.Read() 
      frm.Show() 

      If (Not sqReader.IsDBNull(0)) Then 
       frm.txtID.Text = sqReader.GetInt32(0) 
      End If 

      If (Not sqReader.IsDBNull(1)) Then 
       frm.txtDate.Text = sqReader.GetString(1) 
      End If 

      If (Not sqReader.IsDBNull(2)) Then 
       frm.txtTime.Text = sqReader.GetString(2) 
      End If 

      If (Not sqReader.IsDBNull(3)) Then 
       frm.txtSubject.Text = sqReader.GetString(3) 
      End If 

      If (Not sqReader.IsDBNull(4)) Then 
       frm.txtReminderText.Text = sqReader.GetString(4) 
      End If 

     End While 

    End If 

    sqReader.Close() 
    sqConnection.Close() 

Catch ex As Exception 
    MsgBox("Error:" & ex.Message, vbExclamation) 
End Try 

回答

1

如果我理解正確的話,你想顯示一個窗體,爲每一行從數據庫中回滾。 我不確定這種用戶界面的做法是最好的,如果你有多個行, ,但你可以instanciate一個新的形式,如你所說的每一行, 而不是使用相同的實例 所有你需要的做的是替換:

frm.Show() 

Dim newForm As New frmMessage() 
newForm.Show() 
+0

你是一個天才。感謝隊友:D – 2011-05-01 12:21:16

相關問題