Frage

Ich bin nicht in der Lage die neueste eingesetzte ID von meinem SQL Server 2000 db unter Verwendung eines typisierten Dataset in asp.NET

abrufen

Ich habe eine Tableadapter erstellt und ich tickte die „Refresh Datatable“ und „Generate Insert, Update und Delete-Anweisungen“. Dieser generiert automatisch die Fill und GetData-Methoden und das Einfügen, Aktualisieren, Auswählen und Anweisungen löschen.

Ich habe jede mögliche Lösung in diesem Thread versucht,

http://forums.asp.net/t/990365.aspx

, aber ich bin immer noch unsuccesfull, es gibt immer 1 (= Anzahl der betroffenen Zeilen). Ich möchte nicht eine separate Insert-Methode als das automatisch generierte Insert paßt perfekt meine Bedürfnisse zu schaffen.

Wie oben im Thread vorgeschlagen, habe ich versucht, die Insert SQL-Syntax zu aktualisieren SELECT SCOPY_IDENTITY () oder etwas ähnliches zu schreiben, habe ich versucht, einen Parameter vom Typ Return hinzuzufügen, aber alles, was ich bekomme, ist die Anzahl der betroffenen Zeilen .

Hat jemand eine andere Meinung dazu hat? Danke im Voraus! Stijn

War es hilfreich?

Lösung

ich erfolgreich einen Weg gefunden, die inkrementelle ID nach Einsatz mit meinem Tisch Adapter zu erhalten.

Mein Ansatz ist ein wenig anders, ich bin ein Abspeicherprozedur mit dem Einsatz zu machen, so dass mein Einsatz Befehl alle Werte hat aber die ID, machte ich die sp die ID zurückkehren nur anrufen:  SET @ ID = SCOPE_IDENTITY () und dann  COMMIT TRAN und letzte Zeile wird  RETURN @ID

Dann suchte ich meine Tabelle Adapter Parameter für Insert und die @RETURNVALUE auf die Säule der inkrementellen ID der Tabelle festgelegt, so dass, wenn es automatisch den Rückgabewert auf dem ID-Feld setzt ausgeführt wird.

Hope this help

Andere Tipps

Ich entschied ich aufgeben, ich kann nicht noch mehr Zeit auf diesen Abfälle leisten. Ich verwende die Insert-Anweisung nach dem ich eine wählen MAX (id) Abfrage tun, um die Insert-ID hget

Wenn jemand sollte eine Lösung haben, ich werde froh sein, es lesen Sie hier

Danke Stijn

  

Sie benötigen eine Tabelle Tisch-Adapter zu sagen, die aktualisieren   Daten-Tabelle nach dem Update / Insert-Betrieb.   Dies ist, wie Sie das tun.

  1. Öffnen Sie die Eigenschaften von Tableadapter -> Standard Wählen Sie Abfrage -> Advnaced Optionen . und prüfen die Möglichkeit, Aktualisieren der Datentabelle . Speichern Sie den Adapter jetzt. Nun, wenn Sie Update auf dem Tisch-Adapter rufen, die Daten-Tabelle aktualisiert wird [aktualisiert] nach dem Update / Insert-Betrieb und die neuesten Werte von Datenbanktabelle beziehen. , wenn der Primärschlüssel oder eine coloumn auf Autoinkrement gesetzt ist, wird die Datentabelle diejenigen neueste Wert Post letzten Update.

  2. Jetzt können Sie das Update als TableAdapterObj.Update (ds.dataTable) Ruf;

  3. Lesen Sie aktuelle Werte aus dem Datatable (ds.dataTable) coloumns und weisen entsprechende Werte in die untergeordneten Tabelle vor einem Update / Insert . Dies funktioniert genau so, wie Sie wollen.

alt text http://ruchitsurati.net/files/tds1.png

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top