VB.NET: Datenbank mit DataGridView (Daten anzeigen und Manipulation) Übersicht

ZUSAMMENFASSUNF DES DATAGRIDVIEW  MIT DATENBANKZUGRIFF

In den beiden vorhergegangenen Anleitung wurde detailliert erklärt, wie man ein DataGridView mit Daten aus der Datenbank befüllt oder auch verändert.

In der folgenden Grafik ist der Aufbau dargestellt:

Aufbau und Übersicht des DataGridViews

>>> DOWNLOAD ÜBERSICHTSGRAFIK

Aufbau des Forms mit den entsprechenden Steuerelementen

Der komplette Programmcode:

Imports MySql.Data.MySqlClient

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

Public Sub dbOeffnen()
conn.ConnectionString = "Data Source=10.194.x.xxx;UID=BENUTZER-DB;Initial Catalog=DB-NAME;password=DB-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", 13, FontStyle.Regular)
dbgrid.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells
dbgrid.Columns(0).Width = 50
dbgrid.Columns(1).Width = 100
dbgrid.Columns(2).Width = 240
dbgrid.Columns(3).Width = 125
dbgrid.Columns(4).Width = 400
dbgrid.Columns(5).Width = 200
dbgrid.Columns(6).Width = 300

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

Private Sub btnAbbrechen_Click(sender As Object, e As EventArgs) Handles btnAbbrechen.Click
Close()
End Sub
Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
btnSpeichern.Enabled = False
dbOeffnen()
datenAbfragen()
End Sub

Private Sub StörungBearbeitenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles StörungBearbeitenToolStripMenuItem.Click
id = dbgrid.Item(0, dbgrid.CurrentCell.RowIndex).Value
btnSpeichern.Enabled = True
End Sub

Private Sub btnSpeichern_Click(sender As Object, e As EventArgs) Handles btnSpeichern.Click
Dim sql As String
Dim cmd As MySqlCommand
If MsgBox("Diese Störung jetzt als beseitigt markieren?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
#
'prüfen ob eine Abschlussmeldung eintragen wurde - wenn nicht, dann abbruch..
If Len(txtaMeldung.Text) = 0 Then
MsgBox("Bitte eine kurze Info zur Beseitigung eingeben")
txtaMeldung.Focus()
Exit Sub
End If


sql = "update tblmonitor set visible = 0,abschlussmeldung = '" & txtaMeldung.Text & "' where formPrim = " & id
Try
cmd = New MySqlCommand(sql, conn)
cmd.BeginExecuteNonQuery() 'Initiiert die asynchrone Ausführung der Transact-SQL-Anweisung 
txtaMeldung.Clear()
datenAbfragen()
btnSpeichern.Enabled = False
Catch ex As Exception
MsgBox("Änderung des Status nicht möglich")
End Try
End If
End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'Manuelle Aktualisierung
datenAbfragen()
End Sub


End Class

einen Kommentar senden...

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