以下代码写在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
答案 0 :(得分:2)
如果我理解正确,您希望显示从数据库中回溯的每一行的表单。 如果你有超过几行,我不确定这种UI实践是最好的, 但你可以像你对每一行所说的那样实例化新表格, 而不是使用相同的实例 你需要做的就是替换:
frm.Show()
带
Dim newForm As New frmMessage()
newForm.Show()