Hallo!
Ich sitze nun schon den halben Tag und versuche, bei meinem Projekt das DataGridView zum Update zu bewegen - bisher ohne Erfolg.
Ich arbeite an einer Datenbanklösung zur Speicherung von hardware, Software und Lizenzen.
Ich verwende VB.NET 2010 und dahinter liegt eine MySql-Datenbank.
Insert funktioniert bei mir folgendermaßen:
und Anzeigen folgendermaßen:
Update hab ich hier sowas:
Nun möchte ich, wenn ich im DataGridView etwas ändere, das auch an die Datenbank weiterleiten. Ich habe bisher mehrere Möglichkeiten durchprobiert.
Der Tip mit dem CommandBuilder ist gut, nützt mir aber nichts, da ich Joins verwende, um die Daten anzuzeigen.
Kann mir jemand helfen? Im Endeffekt kann es doch nicht so schwer sein! Aber nirgendwo findet man halt DEN Anhaltspunkt, der einen weiterbringt.
PS: Auf die MSDN habe ich schon geschaut, aber bei dem ganzen Wust an Informationen bin ich hinterher nicth viel schlauer als vorher
MfG Moni
Ich sitze nun schon den halben Tag und versuche, bei meinem Projekt das DataGridView zum Update zu bewegen - bisher ohne Erfolg.
Ich arbeite an einer Datenbanklösung zur Speicherung von hardware, Software und Lizenzen.
Ich verwende VB.NET 2010 und dahinter liegt eine MySql-Datenbank.
Insert funktioniert bei mir folgendermaßen:
Code:
Dim selectedHW As Object Dim keytypeID As String selectedHW = cmbHWType.SelectedItem 'Unterabfrage zum Suchen der ID, die der entsprechenden Auswahl in der Kombobox 'zuzuordnen ist keytypeID = "(Select TYPEID from HWTYPES where HWTYPE = '" & selectedHW & "')" 'Unterabfrage insertquery = "INSERT INTO HARDWARE (HWID, hwname, DOMAINNAME, hwstandort, ipadress, TYPEID) VALUES ('NULL', ' " & txtHWName.Text & "', '" & txtDomain.Text & " ', '" & txtStandort.Text & "', ' " & txtIP.Text & "'," & keytypeID & ");" mycommand.Connection = myconnection mycommand.CommandText = insertquery mycommand.ExecuteNonQuery() 'Eingabefelder zurücksetzen For Each C As Control In Me.Controls If TypeOf C Is TextBox Then C.Text = "" End If Next C showdb()
Code:
showdatatable.Clear() showquery = "SELECT hw.hwname, hw.domainname, hw.hwstandort, hw.ipadress, ty.hwtype from hardware hw, hwtypes ty WHERE hw.typeid = ty.TYPEID" 'MySqlCommand-Objekt mycommand.Connection = myconnection mycommand.CommandText = showquery 'Command an das MySqlData-Objekt übergeben showadapter.SelectCommand = mycommand 'DataAdapter füllt die DataTable showadapter.Fill(showdatatable) showadapter.Update(showdatatable) 'Daten an das DataGridView binden dgvHardware.DataSource = showdatatable dgvHardware.Update() dgvHardware.Refresh() 'Zellen automatisch anpassen dgvHardware.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells
Code:
bindingsource.DataSource = showdatatable dgvHardware.DataSource = bindingsource Dim updatecommand As New MySqlCommand("UPDATE hardware SET hwname = @hwname WHERE hwid = @hwid", myconnection) updatecommand.Parameters.Add("@hwid", MySqlDbType.VarChar, 100, "hwname") showadapter.UpdateCommand = updatecommand showadapter.Update(showdatatable)
Der Tip mit dem CommandBuilder ist gut, nützt mir aber nichts, da ich Joins verwende, um die Daten anzuzeigen.
Kann mir jemand helfen? Im Endeffekt kann es doch nicht so schwer sein! Aber nirgendwo findet man halt DEN Anhaltspunkt, der einen weiterbringt.
PS: Auf die MSDN habe ich schon geschaut, aber bei dem ganzen Wust an Informationen bin ich hinterher nicth viel schlauer als vorher
MfG Moni
Comment