Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
[ql server 2008] ritornaew identity da stored procedure
giovedì 25 marzo 2010 - 11.43
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
cicemoi
Profilo
| Junior Member
72
messaggi | Data Invio:
gio 25 mar 2010 - 11:43
Salve,
ho creato una stored d'inserimento che mi dovrebbe tornare in output l'identity inserita/generata
lato ASP.net ho fatto inquesto modo:
SqlParameter parOut = new SqlParameter("@idOut", SqlDbType.Int);
parOut.Direction = ParameterDirection.Output;
e nella stored ho dichiarato il parametro in questo modo:
@idOut int OUTPUT
e me lo faccio ritornare in questo modo:
set @idOut = scope_identity()
return @idOut
solo ceh nel ricavare poi il value ( parOut.Value = command.ExecuteNonQuery())
sembra che il valore sia sempre 1 cioè il numero delle righe inserite non l'idenity!!!!
chi mi sa dire se c'è un'impostazione di sqlServer ceh devo applicare o se sbaglio qualche istruzione?????
grazie milleeeeeeeeeeeeeeeeeeeeeeeeeeeeee
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
gio 25 mar 2010 - 12:07
>lato ASP.net ho fatto inquesto modo:
>
>SqlParameter parOut = new SqlParameter("@idOut", SqlDbType.Int);
>parOut.Direction = ParameterDirection.Output;
>
>e nella stored ho dichiarato il parametro in questo modo:
>
>@idOut int OUTPUT
>
>e me lo faccio ritornare in questo modo:
>
>set @idOut = scope_identity()
>return @idOut
Ciao Cinzia,
Dato che hai definito un parametro di output non server eseguire la RETURN che è appunto il valore di ritorno di una sp (differente da un parametro di output).
>solo ceh nel ricavare poi il value ( parOut.Value = command.ExecuteNonQuery())
>sembra che il valore sia sempre 1 cioè il numero delle righe
>inserite non l'idenity!!!!
Ecco, il metodo ExecuteNonQuery() restituisce appunto il numero di righe modificate.
Per leggere il parametro di output non devi fare altro che interrogare la collection Parameters() come nel seguente esempio:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=12216
>grazie milleeeeeeeeeeeeeeeeeeeeeeeeeeeeee
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
cicemoi
Profilo
| Junior Member
72
messaggi | Data Invio:
gio 25 mar 2010 - 12:19
si il problema era proprio nell'assegnazionde del executenonquery al value del parametro di output
Grazie milleeeeeee
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !