Vra

Ek is nie in staat om die nuutste ingevoeg id van my SQL Server 2000 db met behulp van 'n getikte dataset in asp.NET

haal

Ek het 'n tableadapter geskep en ek afgemerk die "Refresh datatable" en "Genereer Voeg, dateer op en vee state". Dit outomaties genereer die vul en getData metodes, en die Insert, Werk, Select en Delete state.

Ek het elke moontlike oplossing in hierdie draad probeer

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

maar ek is nog unsuccesfull, dit gee altyd 1 (= aantal geaffekteerde rye). Ek wil nie 'n aparte insetsel metode as die outomaties gegenereerde insertCommand perfek pas my behoeftes te skep.

As in die draad bo, ek het probeer om die InsertCommand SQL syntax werk te kies SCOPY_IDENTITY () of iets soortgelyks te voeg voorgestel, het ek probeer om 'n parameter van tipe ReturnValue voeg, maar al wat ek kry is die aantal geaffekteerde rye .

Is daar iemand het 'n ander neem op hierdie? Dankie by voorbaat! Stijn

Was dit nuttig?

Oplossing

Ek suksesvol 'n manier gevind om die inkrementele id kry nadat insetsel met behulp van my tafel adapter.

My benadering is 'n bietjie anders, ek gebruik 'n winkel prosedure om die insetsel te maak, sodat my insetsel opdrag het al die waardes, maar die ID, ek het die sp terugkeer die ID net 'n beroep:  STEL @ ID = SCOPE_IDENTITY () en dan  pleeg TRAN en laaste reël sal wees  TERUG @ID

Toe gesoek ek my tafel adapter parameters vir InsertCommand en stel die @RETURNVALUE om die kolom van die inkrementele ID van die tafel, so wanneer dit outomaties is uitgevoer sit die terugkeer waarde op die veld id.

Hoop dit help

Ander wenke

Ek het besluit om op te gee, ek kan dit nie bekostig om enige meer tyd op hierdie mors. Ek gebruik die Voeg verklaring waarna ek doen 'n uitgesoekte MAX (id) navraag te hget die insetsel ID

As iemand 'n oplossing moet hê, sal ek bly wees om dit hier te lees

Dankie Stijn

  

Jy moet jou tafel tafel-adapter vertel om die verfris   data-tafel na update / insetsel operasie.   Dit is hoe jy dit kan doen.

  1. Open die eienskappe van TableAdapter -> Default Select Query -> Advnaced opsies . en seker die opsie van Herlaai die datatabel . Red nou die adapter. Nou wanneer jy update 'n beroep op tafel-adapter, sal die data-tafel opgedateer [verfris] na die update / insetsel operasie en sal die nuutste waardes van databasistabel weerspieël. as die primêre-sleutel of enige coloumn is ingestel op motor-inkrement, die data-tafel sal dié jongste waarde post onlangse update.

  2. Nou kan jy die update as TableAdapterObj.Update (ds.dataTable) Bel;

  3. Lees nuutste waardes van die DataTable (ds.dataTable) coloumns en wys onderskeie waardes in die kind tafel voor update / insetsel . Dit sal presies die manier waarop jy wil werk.

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

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top