autoincremented Primär-Schlüssel - wo ist der Wert nach dem Insert

09/05/2008 - 10:48 von M.Erlinger | Report spam
Hallo

wie bekommen ich den Wert in meine DataRow (bzw. BindingSource.Current),
wenn ich einen neuen Datensatz in meine Tabelle einfüge, in der der
Primary-Key ein "autoincremented"-Datenfeld ist?

wird dies nicht automatisch von DataAdapter nach dem INSERT getan?

Danke für eine Info dazu
Gruß - Michael
 

Lesen sie die antworten

#1 Frank Dzaebel
09/05/2008 - 18:00 | Warnen spam
Hallo Michael,

wie bekommen ich den Wert in meine DataRow (bzw. BindingSource.Current),
wenn ich einen neuen Datensatz in meine Tabelle einfüge, in der der
Primary-Key ein "autoincremented"-Datenfeld ist?
wird dies nicht automatisch von DataAdapter nach dem INSERT getan?



Beim Persistieren in die DB wird der Wert eh
normalerweise automastisch richtig gesetzt.
Im Prinzip hàttest Du auf der Frontend-Seite somit
eine Art Dummy-ID, die aber normal völlig
ausreicht. Du musst bedenken, im nàchsten Moment
kann jemand anderes auf dem DB-Server schon
wieder einen neuen Datensatz eingefügt haben.
Wenn Du z.B. etwa soetwas hast:

BindingSource bs = table1BindingSource;
if (this.Validate() && (bs != null))
{
bs.AddNew(); bs.CurrencyManager.Refresh();
}

wird die PK-ID normal automatisch clientseitig erhöht,
wenn Du im DataTable des DataSet
AutoIncrementSeed / AutoIncrementStep
richtig gesetzt hast.

Will man die ID trotz allem doch direkt vom Server
aktuell haben, so arbeitet man z.B. über
Scope_Identity (->SQL Server), etc.:
Ähnliches benutzen die Standard-Insert-Kommandos
über den Designer auch:

INSERT INTO [dbo].[Table1] ([Spalte1], [Spalte2]) VALUES (@Spalte1,
@Spalte2);
SELECT id, Spalte1, Spalte2 FROM Table1 WHERE (id = SCOPE_IDENTITY())


[Abrufen von Identitàts- oder AutoWert-Werten (ADO.NET)]
http://msdn.microsoft.com/de-de/lib...f57t0.aspx

[HOW TO: Retrieve the Identity Value While Inserting Records into Access
Database By Using Visual C# .NET]
http://support.microsoft.com/kb/816112/en-us

Eigentlich eine Frage für Datenbank-Gruppen:

[Datenzugriffs-Links für .NET]
http://dzaebel.net/DataAccess.htm


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen