zurück
Autor: Chris Nöther
Erstellt am: 16 Nov 2006 10:57

prinzipielle Vorgehensweise bei Autowerten

Hallo allerseits,

ich arbeite mich gerade anhand eines kleineren Projektes für die Firma in ADO.NET 2 ein, und stoße auch gleich auf ein Problem, bei dem ich nicht weiß, wie man das prinzipiell löst. Ich habe eine Tabelle (SQL-Server 2000) mit einem Primärschlüssel, der durch den Server selbst vergeben wird. D.h., dass ich bei Erzeugung neuer Sätze im Dataset keinen Primärschlüssel habe. Andererseits brauche ich aber einen für das (hoffentlich später mal) einwandfreie Funktionieren des Programms. Was kann ich tun? Mit fallen zwei Möglichkeiten ein:
1. Entgegen der ADO.NET-Philosophie füge ich sofort nach Erstellen eines Satzes im Dataset diesen auch auf dem Server ein und versuche dann, die ID rauszukriegen, dazu gibt es ja diesen Artikel (http://beta.devtrain.de/artikel.aspx?artikelid=779).
2. Ich erweitere die Tabelle im Dataset zur Laufzeit mit einer weiteren Spalte, in der ich eine eindeutige ID für den Satz speichere (kann man das auch automatisch machen lassen?), mit der ich dann arbeiten kann. Zum Schluss schreibe ich die Daten ausser der neuen Spalte zurück und dort bekommen sie dann eben ihre endgültigen IDs.
Irgendwie habe ich aber das Gefühl, dass beides nicht optimal ist und dass es doch vermutlich auch hierfür eine einfachere Lösung gibt, da doch dieses Problem permanent mit DBs auftritt.
Angemommen, die zweite Variante wäre vorzuziehen, was mache ich bei einer zweiten Tabelle, die für neue Sätze einen Schlüssel aus der ersten braucht? Dann wird doch das Zurückschreiben gar nicht mehr über ein einziges adapter.update(dataset) funktionieren, dann muss ich die Sätze der Tab2 doch selbst denen der Tab1 zuweisen, oder?
Ja, also, wie macht man sowas?
Vielen Dank für Eure Tipps ...

Chris

ADO.NET


© Copyright 2008 ppedv AG