Update einer Datenbanktabelle aus einem DataGrid

McToby

Grünschnabel
Hallo zusammen,

ich habe derzeit daß Problem geänderte Datensätze aus einem Datagrid in eine Datenbank zu überspielen. Das Datagrid wurde zuvor mit einer einschränkenden Select Abfrage erzeugt. Hierzu habe ich folgenden Programmcode geschrieben:

sCMD = "SELECT [Case ID],TOI,BKTO,[Name des Kunden],Datum FROM [Clarify Datenerfassung] WHERE Datum=" & ausgabe & " AND User='" & Benutzername() "';"
oDB.Open()

Try
Dim oCMD As OleDb.OleDbCommand = New OleDb.OleDbCommand sCMD, oDB)
oAdapter = New OleDb.OleDbDataAdapter(oCMD)
oAdapter.Fill(oDataSet, "Suche")

Catch ex As Exception
MessageBox.Show(ex.Message, "Fehler beim Laden", MessageBoxButtons.OK, MessageBoxIcon.Information)

End Try
Me.DataGrid1.DataSource = oDataSet.Tables("Suche")

oDB.Close()

Die entsprechenden Variablen habe ich zuvor wie folgt definiert:

Dim sCMD As String
Dim con As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= \\dewptfs01\korre\clarify\Clarify_neu.mdb"
Dim oAdapter As OleDb.OleDbDataAdapter
Dim oDataSet As New DataSet("Suche")
Dim oDB As OleDb.OleDbConnection = New OleDb.OleDbConnection(con)
Dim oCmd As New OleDb.OleDbCommandBuilder(oAdapter)

Wie kann ich nun eine entsprechende Update Prozedur aus einem DataGrid heraus gestalten?
Vielen Dank schon einmal im voraus für die Hilfe.

McToby
 
Spontan fällt mir da eine Klassische "For Each cRow ...." Methode ein, bei Du alle Reihen des DataGrid von "Hand" druchlaufen müstest.

Die Daten, kommen aus einer DataTable und haben eine Eindeutige id.
Diese id trägst Du beim Aufbau des DataGrids mit ein.

Wenn Du mit Deinen Änderungen im DataGrid Fertig bist, durchläufst Du einfach mit For Each das Gesamte DataGrid. In jeder DataGrid-Zeile mit einer id suchst Du die Entsprechende id in der DataTable (auch wieder mit For Each) Die aktuelle DataGrid-Zeile muß nun noch in die aktuell gefundene DataTable-Zeile kopiert werden.

Mit der DataTable kann dann der gewohnte "Update-Command" gemacht werden.
 
Zurück