Richtiges AutoIncrement in DataTable?

19/02/2008 - 18:26 von Frank Boehland | Report spam
Ein abendliches Hallo,

Es gibt die Tabelle "Projekt" in einer SQL Server DB. Diese ist initial
leer. Sie hat den Primàrschlüssel ProjektID (int, IDENTITY, Schrittweite 1).

Die DataTable dtProjekt basiert auf dieser Tabelle. Ich möchte einen ersten
Satz hinzufügen:

dtProjekt.Rows.Add(rowProjekt)

Ich war der Meinung, der DataTable alle Schemainformationen mitgegeben zu
haben.

dtProjekt = New DataTable()

adapterProjekt = New SqlDataAdapter(<von Projekt>)

adapterProjekt.FillSchema(dtProjekt, SchemaType.Source)
' adapterProjekt.MissingSchemaAction = MissingSchemaAction.AddWithKey ???

dtProjekt.Columns("ProjektID").AutoIncrement = True
dtProjekt.PrimaryKey = New DataColumn() {dtProjekt.Columns("ProjektID")}

Dim UC As New UniqueConstraint("IX_Projektnummer",
dtProjekt.Columns("Projektnummer"), False)
dtProjekt.Constraints.Add(UC)

...

Die ProjektID des ersten Satzes in der DataTable ist 0. Die 1 würde ich
erwarten.

Kann jemand mit Wissen aushelfen :-)

Ein großen Dank schon mal ...
Frank
 

Lesen sie die antworten

#1 Peter Fleischer
20/02/2008 - 08:05 | Warnen spam
"Frank Boehland" schrieb im
Newsbeitrag news:

Es gibt die Tabelle "Projekt" in einer SQL Server DB. Diese ist initial
leer. Sie hat den Primàrschlüssel ProjektID (int, IDENTITY, Schrittweite
1).

Die DataTable dtProjekt basiert auf dieser Tabelle. Ich möchte einen
ersten
Satz hinzufügen:

dtProjekt.Rows.Add(rowProjekt)

Ich war der Meinung, der DataTable alle Schemainformationen mitgegeben zu
haben.

dtProjekt = New DataTable()

adapterProjekt = New SqlDataAdapter(<von Projekt>)

adapterProjekt.FillSchema(dtProjekt, SchemaType.Source)
' adapterProjekt.MissingSchemaAction = MissingSchemaAction.AddWithKey ???

dtProjekt.Columns("ProjektID").AutoIncrement = True



Hi Frank,
hier sollten der Startwert und die Schrittweite gesetzt werden.

dtProjekt.PrimaryKey = New DataColumn() {dtProjekt.Columns("ProjektID")}

Dim UC As New UniqueConstraint("IX_Projektnummer",
dtProjekt.Columns("Projektnummer"), False)
dtProjekt.Constraints.Add(UC)

...

Die ProjektID des ersten Satzes in der DataTable ist 0. Die 1 würde ich
erwarten.



Falls du mit externen Datenbanken arbeitest (nicht nur lokal im Client), so
sollten Startwert und Schrittweite auf -1 gestellt werden, damit es keine
Konflikte bei Fremdschlüsselwerten gibt.

Viele Gruesse

Peter

Ähnliche fragen