Frank (no reg): OdbcDataAdapter - UpdateSpalte definieren

Beitrag lesen

Hallo,

du hättest auch mit der Rückfrage im ursprünglichen Thread bleiben können, ich hätte es ganz sicher dort auch gelesen.

Ich nehme mal an, dass du die zusätzlichen Commands mittels diesem
CommandBuilder erstellt hast. Der benutzt dann natürlich alle Spalten
für die WHERE-Klausel. Das macht es zwar fast "Lehrer-sicher" aber
nicht unbedingt für alle Einsatzzwecke geeignet. Ich hatte letztens
geschrieben:

Am einfachsten geht dies durch die Verwendung eines OdbcCommandBuilder
Objektes:

Die Betonung lag dabei auf "einfachsten". Denn der CommandBuilder erstellt die fehlenden Commands anhand der Resultset-Spalten-
Auflösung) automatisch. Dein Problem kannst du jetzt eigentlich
nur durch die manuelle Definition der entsprechenden SQL-Statements
erreichen. Also, z.b.

using(SqlDataAdapter da = new SqlDataAdapter(new SqlCommand("SELECT * FROM Tabelle", connection)))
{
  da.UpdateCommand = new SqlCommand("UPDATE Tabelle SET Feld1 = @feld1Wert, ... WHERE Id = @eindeutigerWert", connection);
  da.UpdateCommand.Parameters.Add(@"@feld1Wert", ...);
  // usw.

da.Update(...);
}

Die Relation zwischen Datenbank-Tabelle und DataSet-Tabelle _muss_
nicht 1:1 sein :)

Grüsse, Frank