ID Feld wird nicht aktualisiert

26/08/2007 - 10:05 von Peter | Report spam
Hallo,
ich arbeiten an einem C# Programm für einen PPC.

Meine Tabelle besitzt ein ID Feld, das mit "ID int not null identity(1,1)"
erzeugt worden ist.
Meine Tabelle ist mit einem DataGrid verbunden.
Wenn ich mit "insert to tabelle ..." einen Datensatz hinzufüge, wird der
Datensatz in die Tabelle eingefügt
Den neuen Datensatz sehe ich auch im DataGrid.

Das Problem ist jedoch, daß in dem ID-Feld "null" steht. Wenn ich das
Fenster schließe und wieder öffne, befindet sich eine korrekte ID in dem
Feld. Da ich keine große Erfahrung damit habe weiß ich nicht, ob das
"normal" ist oder ob ich etwas falsch mache und vor allem, was ich falsch
machen könnte.

Danke
Peter
 

Lesen sie die antworten

#1 Peter Fleischer
26/08/2007 - 15:59 | Warnen spam
Peter wrote:
Hallo,
ich arbeiten an einem C# Programm für einen PPC.

Meine Tabelle besitzt ein ID Feld, das mit "ID int not null
identity(1,1)" erzeugt worden ist.
Meine Tabelle ist mit einem DataGrid verbunden.
Wenn ich mit "insert to tabelle ..." einen Datensatz hinzufüge, wird
der Datensatz in die Tabelle eingefügt
Den neuen Datensatz sehe ich auch im DataGrid.

Das Problem ist jedoch, daß in dem ID-Feld "null" steht. Wenn ich das
Fenster schließe und wieder öffne, befindet sich eine korrekte ID in
dem Feld. Da ich keine große Erfahrung damit habe weiß ich nicht, ob
das "normal" ist oder ob ich etwas falsch mache und vor allem, was
ich falsch machen könnte.



Hi Peter,
Autowerte können im Client vergeben werden und/oder auch im Datenbankserver.
Du müsstest mal genauer beschreiben, wo dein Problem liegt.

Die übliche Technologie für Autowerte ist, im Client negative Autowert
automatisch bei der Neuanlage von Datensàtzen durch ADO.NET vergeben zu
lassen. Das kann in der Tabellenspalte (DataTable.Columns...) eingestellt
werden. Mit dem Insert in die Datenbank werden dann die endgültigen
(positiven) Werte durch den Datenbankserver vergeben (Identity-Spalte).
Diese vergebenen Autowerte sind sofort zurückzulesen und in die Datensàtze
einzutragen (implizites Rücklesen durch angehàngtes SELECT). Wenn diese
Datensàtze gebunden sind, werden auch sofort die neuen Autowerte angezeigt.

Du erhöhst Deine Chance, dass Deine Frage überhaupt gelesen und qualifiziert
und schnell beantwortet wird, wenn Du Deinen Realnamen im Absender
einstellst (Vor- und Zuname).

Viele Grüße

Peter

Ähnliche fragen