DevTrain Startseite Visual Studio 1 Magazin  
  
  
SUCHEN:  
ARTIKEL ONLINE: 525   

Kategorien
.NET
Datenbanken
Web
XML

Allgemein
Camp
Foren
Events
Persönliche Einstellungen
Registrieren
Prämien Shop
Kontakt
Impressum
Über DevTrain

Autoren



 

Forum: ADO.NET | Thema: prinzipielle Vorgehensweise bei Autowerten | Von: Chris Nöther ( 16.11.2006 10:57)

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


Betreff Von Datum
AW: prinzipielle Vorgehensweise bei Autowerten
Hallo, Chris, machst du das DatenbankHandling über den DataAdapter ? Der macht das beim Insert automatisch und holt sich die Id in die ensprechende PrimaryKey-Spalte. Ansonsten kannst du an den...
Guido Nachtigall 16.11.2006 11:51
AW: AW: prinzipielle Vorgehensweise bei Autowerten
Hallo Guido, hui, das ging schnell, hätte ich ja gar nicht erwartet. So richtig frequentiert ist das Forum ja nicht. Vielen Dank für Deine Antwort. Ja, mit 'nem DataAdapter. Und wenn es nur eine...
Chris Nöther 16.11.2006 12:09
AW: AW: AW: prinzipielle Vorgehensweise bei...
Hallo, Chris, ich fände es merkwürdig, eine Order einzutragen ohne Kundennummer. Schließlich braucht diese eine Zuordnung. Wenn du allerdings alles gleichzeitig anlegen willst (Kunde und Order),...
Guido Nachtigall 16.11.2006 12:51
AW: AW: AW: AW: prinzipielle Vorgehensweise...
Ja, eine temporäre ID zu generieren ist ja kein Problem. Aber eben später die Orders, die den nur temp. Kunden-IDs zugeordnet sind, dann den korrekten, endgültigen Kunden_IDs zuzuordnen, das stelle...
Chris Nöther 16.11.2006 13:13
AW: AW: AW: AW: AW: prinzipielle...
Ich würde dafür eine GUID verwenden.<br><br>
Bernhard Grojer 16.11.2006 16:41
AW: AW: AW: AW: AW: AW: prinzipielle...
Hallo, einen neuen Schlüssel kann ich nicht nehmen, da ich an der Datenstruktur nichts ändern kann (wird auch anderweitig benutzt). Ich habe aber gestern auch in einem anderen Forum gepostet, und...
Chris Nöther 17.11.2006 08:14

Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!

 Betreff:
 Nachricht: Den Beitrag finden Sie nun unter: http://beta.devtrain.de/foren Die Benutzerdaten und Foreninhalte von beta.devtrain.de und www.devtrain.de sind die selben.
Sie können sich dort sogar per RSS über neue Inhalte informieren lassen.
Bei Problemen bitte direkt Mail an asp [AT] ppedv.de.

 Signatur:

  



Login
Username:


Passwort:






Passwort vergessen?

Visual Studio 1 Magazin

© Copyright 2003 ppedv AG