Domanda

Sono in grado di recuperare l'ultimo ID inserito dal mio SQL Server 2000 db utilizzando un DataSet tipizzato in asp.NET

Ho creato un TableAdapter e ho spuntato la "Refresh datatable" e "Genera Insert, Update e DELETE". Questo genera automaticamente il riempimento e metodi GetData, e l'Insert, Update, selezionare e cancellare le dichiarazioni.

Ho provato ogni possibile soluzione a questo thread

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

ma io sono ancora unsuccesfull, restituisce sempre 1 (= numero di righe interessate). Non voglio creare un metodo di inserimento separata come l'InsertCommand generato automaticamente si adatta perfettamente alle mie esigenze.

Come suggerito nel thread di cui sopra, ho cercato di aggiornare la sintassi InsertCommand SQL per aggiungere SCOPY_IDENTITY SELECT () o qualcosa di simile, ho cercato di aggiungere un parametro di tipo ReturnValue, ma tutto quello che ottiene è il numero di righe interessate .

C'è qualcuno che ha un approccio diverso su questo? Grazie in anticipo! Stijn

È stato utile?

Soluzione

Ho trovato con successo un modo per ottenere l'id incrementale dopo l'inserto con il mio adattatore tabella.

Il mio approccio è un po 'diverso, sto usando una procedura Store per rendere l'inserto, quindi il mio comando di inserimento ha tutti i valori, ma l'ID, ho fatto la sp restituire l'ID solo chiamate:  SET @ ID = SCOPE_IDENTITY () e poi  COMMIT TRAN e ultima linea sarà  RITORNO @ID

Poi ho cercato i miei parametri adattatori da tavolo per InsertCommand e impostare il @RETURNVALUE alla colonna dell'ID incrementale della tabella, in modo che quando è eseguito automaticamente mettere il valore di ritorno sul campo id.

Spero che questo aiuto

Altri suggerimenti

Ho deciso di rinunciare, non posso permettermi di perdere altro tempo su questo. Io uso la dichiarazione Inserisci dopo che faccio una query di selezione MAX (id) per hget l'ID inserto

Se qualcuno dovesse avere una soluzione, sarò felice di leggere qui

Grazie Stijn

  

Devi dire tavolo adattatore della vostra tabella per aggiornare la   tabella dati dopo operazione di aggiornamento / inserto.   Ecco come si può fare.

  1. Aprire le proprietà di TableAdapter -> default Selezionare Interrogazione -> Opzioni Advnaced . e Selezionare l'opzione di Aggiornare la tabella di dati . Salvare l'adattatore ora. Ora, quando si chiama aggiornamento sulla tabella-adattatore, il tabella dati saranno aggiornati [aggiornati] dopo l'aggiornamento / operazione di inserimento e rifletterà i valori più recenti da tabella di database. se la colonnina chiave primaria o qualsiasi è impostato su auto-incremento, la tabella dati avrà coloro ultimo valore postale recente aggiornamento.

  2. Ora è possibile chiamare l'aggiornamento come TableAdapterObj.Update (ds.dataTable);

  3. Leggi gli ultimi valori dalle coloumns DataTable (ds.dataTable) e assegnare rispettivi valori nella tabella figlio prima di aggiornamento / inserimento . Ciò funzionerà esattamente nel modo desiderato.

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top