Private Sub Alert_btn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Alert_btn.Click
Dim conn As New SqlClient.SqlConnection(My.Settings.CSTConnectionString)
Try
If conn.State <> ConnectionState.Open Then conn.Open()
Catch ex As SqlClient.SqlException
Debug.Assert(False, ex.ToString)
End Try
Try
Dim Command As New SqlClient.SqlCommand("SELECT * FROM dbo.CUSTOMERS", conn)
Dim dataReader As SqlClient.SqlDataReader = Command.ExecuteReader(CommandBehavior.CloseConnection)
dataReader.Read()
While dataReader.HasRows
Dim newAlert As New Alert(dataReader("COMMENTS").ToString(), DateTime.Parse(dataReader("DATE").ToString()))
Me.collectionOfAlerts.Add(newAlert)
End While
conn.Close()
Console.WriteLine(conn.State.ToString) 'Closed
Catch ex As Exception
Debug.Assert(False, ex.ToString)
End Try
End Sub
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
The Class, reminder linked to the button, Alert_btn is as follows:
'Class Reminder
Public Class Reminder
Dim alertDesc As String = String.Empty
Dim alertTime As DateTime = DateTime.Now
Dim isAlertOn As Boolean = False
Dim timer As New System.Timers.Timer(1000) 'every second
Public Property AlertDescription() As String
Get
Return Me.alertDesc
End Get
Set(ByVal value As String)
Me.alertDesc = value
End Set
End Property
Public Property TimeOfAlert() As DateTime
Get
Return Me.alertTime
End Get
Set(ByVal value As DateTime)
Me.alertTime = value
End Set
End Property
Public Property IsAlertActive() As Boolean
Get
Return Me.isAlertOn
End Get
Set(ByVal value As Boolean)
Me.isAlertOn = value
End Set
End Property
Public Sub New(ByVal descOfAlert As String, ByVal timeOfAlert As DateTime)
Me.alertDesc = descOfAlert
Me.alertTime = timeOfAlert
Me.isAlertOn = True
Me.timer.AutoReset = True
Me.timer.Enabled = True
AddHandler timer.Elapsed, AddressOf timer_elapsed
Me.timer.Start()
End Sub
Private Sub timer_elapsed(ByVal sender As Object, ByVal e As System.Timers.ElapsedEventArgs)
If Me.isAlertOn Then
If Me.alertTime = DateTime.Now Or Me.alertTime <= DateTime.Now.AddMinutes(-2) Then
System.Windows.Forms.MessageBox.Show("alert from " & Me.AlertDescription)
Me.isAlertOn = False
End If
End If
End Sub
End Class
Please guys what can I do so that this code works properly - free up and release the memory after each alert Any input is greatly appreciated. Thanks.