Aktualisierung Key

daniel94ver

Grünschnabel
Hallo,

ich habe ein Problem:

ich möchte eine Tabelle um einen Eintrag erweitern. Gliechzeitig benötige ich von der zugefügten Zeile den vergebenen Key.
Code:
TimeCardDataSet.tblHolidayRow holidayRow =
                    timeCardDataSet.tblHoliday.NewtblHolidayRow();
holidayRow.Name = "Hallo";
timeCardDataSet.tblHoliday.AddtblHolidayRow(holidayRow);

Bei meinem Versuch wird der Key erst nach dem Update
Code:
this.tblHolidayTableAdapter.Update(timeCardDataSet.tblHoliday);
aktualisert. Wie kann ich eine Aktualisierung schon vorher "erzwingen"
 

FwDonnerbalken

Erfahrenes Mitglied
Moin,

das Problem ist, dass in .NET keine dauerhafte Verbindung zur Datenbank besteht. Dies bedeutet, dass die Zeile zunächst nur lokal im Speicher hinzugefügt wird. Erst mit dem Update werden die Daten in die Datenbank geschrieben, und dann der wahrscheinlich als Identity eingestellte Key erzeugt und damit bekannt.

Grundsätzlich hast du folgende Möglichkeit: Du verzichtest auf das Identity-Feld und benutzt stattdessen GUID's als Schlüssel. Diese sind 1. eindeutig und 2. kannst du diese zur Programmlaufzeit erzeugen und anschließend in die Datenbank wegschreiben. Damit kennst du deinen Key schon vorher.
Der etwas fade Beigeschmack, der sich jetzt in deinem Mund breit macht liegt wohl daran, dass GUID natürlich um einiges größer sind, als der int den du auf den Identity-Feld hast, da du den Key ja auch in anderen Tabellen als Fremdschlüssel verwendest, ist der benötigte Speicherplatz nicht zu vernachlässigen. (zumindest bei großen Datenbanken)

Gruß,
Sebastian
 

Neue Beiträge