VB.net: Monitoring mit automatischer Aktualisierung/Befüllung des DataGridViews

VB.NET: MONITORING MIT DATAGRIDVIEW

Mit einem DataGridView wird auf die Datenbank zugegriffen und alle Vorgänge im Status „OFFEN“ angezeigt und automatisch aktualisiert.
Einige Punkte habe ich in den vorherigen Beiträgen bereits beschrieben, daher gehe ich in diesem Artikel nicht auf alles nochmal ein. Vieles lässt sich aber auch aus dem Kontext heraus ableiten.
Wird ein Vorgang abgeschlossen, verschwindet dieser automatisch in der Anzeige

Die automatische Aktualisierung der Daten erfolgt mit einer Timer-Steuerelement:

Unter „Interval“ die gewünschten Ausführungsabstände eingeben
Es wird im Intervall die Prozedur „datenAbfrage()“ ausgeführt

Zusätzlich soll auch in der Form die aktuelle Uhrzeit angezeigt werden. Auch das wird mit dem Steuerelement „Timer“ realisiert:

Das Steuerelemt „Label1“ zeigt die aktuelle Uhrzeit an

Das Hauptform heißt in unserem Beispiel „frmMain“, das Label1 ist „lblaktzeit, das DateGridView „dbgrid“

Der komplette Programmcode:

Imports MySql.Data.MySqlClient ' importieren der mysql-data.dll

Public Class frmMain
Dim conn As New MySqlConnection ' Verbindungsvariable zum Datenbankserver/Datenbank
Dim daten As New DataSet() ' Container(Zwischenspeicher) für die Datensätze

Public Sub dbOeffnen()
conn.ConnectionString = "Data Source=10.194.x.xxx;UID=DB-USER;Initial Catalog=DATENBANK-NAME;password=MEIN-PASSWORT"

Try
conn.Open() ' Öffnen der Datenbank auf dem DB-Server
Catch ex As Exception
MsgBox("Error: " & ex.Message)
End Try
End Sub

Public Sub datenAbfragen()
Dim sql As String

sql = "SELECT tbl.formPrim as 'V-ID',Upper(tbl.formPriority) AS 'PRIO',DATE_FORMAT(tbl.formDate,'%d.%m.%Y um %H:%m Uhr') AS 'Gemeldet am',"
sql += "tbl.formRaum as 'Standort',tbl.formMessage as 'BESCHREIBUNG',if (tbl.formErledigt='0000-00-00 0000:00','OFFEN',tbl.formErledigt) AS Status, "
sql += "concat(tbl.formVorname,' ',tbl.formNachname) AS 'NAME' FROM tblmonitor AS tbl "
sql += "WHERE tbl.visible = '1' ORDER BY tbl.formPriority asc;"

Dim adapter As MySqlDataAdapter = New MySqlDataAdapter(sql, conn)
' hier wird die SQl-Anweisung an die Datenbank gesendet
Try
daten.Clear() ' Datentabelle wieder neu aufbauen
adapter.Fill(daten, "tblmonitor")

Catch ex As Exception
End Try
' das Ergebnis der Abfrage wird an das Dataset übergeben 
dbgrid.DataSource = daten
' Inhalt des Datasets an das dbGrid übergeben
dbgrid.DataMember = "tblmonitor"
dbgrid.Font = New Font("ARIAL", 10, FontStyle.Regular)
dbgrid.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells
dbgrid.Columns(0).Width = 50
dbgrid.Columns(1).Width = 60
dbgrid.Columns(2).Width = 200
dbgrid.Columns(3).Width = 110
dbgrid.Columns(4).Width = 400
dbgrid.Columns(5).Width = 60
dbgrid.Columns(6).Width = 230

End Sub
Private Sub btnbeenden_Click(sender As Object, e As EventArgs) Handles btnbeenden.Click
Close()
End Sub

Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles Me.Load
' Erstellen der DB-Verbindung und Anzeigen der Daten
dbOeffnen()
datenAbfragen()
End Sub

Private Sub frmMain_FormClosed(sender As Object, e As FormClosedEventArgs) Handles MyBase.FormClosed
conn.Close()
End Sub

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
lblaktzeit.Text = Format(Now, "HH-mm-ss")
End Sub

Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick
'aktualisiert die StörungsAnzeige
datenAbfragen()
End Sub

End Class

 


einen Kommentar senden...

Die E-Mail-Adresse wird nicht veröffentlicht.