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.
Die automatische Aktualisierung der Daten erfolgt mit einer Timer-Steuerelement:
Zusätzlich soll auch in der Form die aktuelle Uhrzeit angezeigt werden. Auch das wird mit dem Steuerelement „Timer“ realisiert:
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