venerdì, aprile 11, 2008

SqlDataSource, recuperare l'identità appena inserita

Quando si esegue un INSERT INTO attraverso le funzionalità dell'oggetto SqlDataSource, magari collegato a un FormView, può essere molto utile risalire alla chiave appena inserito nella tabella.
Ovviamente mi riferisco a una tabella che abbia come campo chiave un identità.
Ecco come fare:
impostare InsertCommand del SqlDataSource in questo modo

INSERT INTO [TABELLA] ([CAMPI])
VALUES ([@PARAMETRI]);SELECT
@NewID=SCOPE_IDENTITY()

Aggiungere fra gli InsertParameter:
Name="NewID" Direction="OUTPUT" Type="Int32"

Ora, nell'evento Protected Sub SqlDSClient_Inserted è possibile recuperare il valore:
e.Command.Parameters("@NewID").Value

Etichette:



#