Ciao!
per poter utilizzare una sp che restituisca un parametro (OUTPUT) occorre seguire le seguenti regole ... Supponiamo di voler inserire una riga nel nostro db utilizzando una insert e ricavarne l'ID assegnato automaticamente ...
come prima cosa dobbiamo modificare la query di insert in questo modo:
quindi aggiungiamo un parametro di OUTPUT per contenere il valore di ritorno ...
<InsertParameters>
<asp:Parameter Name="ID" Type="Int32" Direction="Output"/>
<asp:ControlParameter ControlID="txtText" Type="string" Name="Nome" PropertyName="Text" />
</InsertParameters>
infine ... per recuperare il valore del parametro dalla insert creiamo un Event Handler per l'evento Inserted
protected void SqlDataSource1_Inserted(object sender, SqlDataSourceStatusEventArgs e)
{
if (e.Exception == null)
{
int lastID = (int)e.Command.Parameters["@ID"].Value;
this.lblID.Text = string.Format("Il record è stato aggiunto con id: {0}", lblID);
}
else
{
e.ExceptionHandled = true;
this.IlblID.Text = "Errore ...";
}
}
nell'esempio si recupera l'id dell'oggetto SqlDataSource ... ma può essere applicato a qualsiasi paramentro OUTPUT inserito nella SP ...
Antonio