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
ExecuteNonQuery
mercoledì 17 novembre 2010 - 01.36
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
SQL Server 2005
PEPE
Profilo
| Senior Member
296
messaggi | Data Invio:
mer 17 nov 2010 - 01:36
Salve a tutti,
volevo capire una cosa sul metodo EcecuteNonQuery.
Sull'msdn ho trovato questa info:
È possibile utilizzare il metodo ExecuteNonQuery per eseguire operazioni di catalogo (ad esempio, eseguire query sulla struttura di un database o creare oggetti del database quali tabelle) oppure modificare i dati contenuti in un database senza utilizzare un oggetto DataSet eseguendo le istruzioni UPDATE, INSERT o DELETE.
Sebbene il metodo ExecuteNonQuery non restituisca alcuna riga, eventuali parametri di output o valori restituiti mappati a parametri vengono compilati mediante dati.
Nel caso delle istruzioni UPDATE, INSERT e DELETE, il valore restituito è il numero di righe interessate dal comando. Per tutti gli altri tipi di istruzioni, il valore restituito è -1. Anche se si verifica un'operazione di rollback, il valore restituito sarà -1.
Ora il mio problema è che io le query le eseguo attraverso le stored procedure, quindi probabilmente lui farà una Exec. Volevo capire se c'è un modo per farsi restituire con il comando ExecuteNonQuery il numero di righe coinvolte utilizzando i comandi Insert, Update, Delete ma da store procedure.
Altrimenti questo comando è davvero inutile, si userebbe sempre l'executescalar mettendo nella stored procedure una select del numero di righe coinvolte come ultima istruzione t-sql. C'ho preso???? :D
Grazie 1000,
Luca.
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mer 17 nov 2010 - 08:54
>Sebbene il metodo ExecuteNonQuery non restituisca alcuna riga,
>eventuali parametri di output o valori restituiti mappati a parametri
>vengono compilati mediante dati.
...
>Ora il mio problema è che io le query le eseguo attraverso le
>stored procedure, quindi probabilmente lui farà una Exec. Volevo
>capire se c'è un modo per farsi restituire con il comando ExecuteNonQuery
>il numero di righe coinvolte utilizzando i comandi Insert, Update,
>Delete ma da store procedure.
Definisci appunto un parametro di output e recuperalo dopo l'esecuzione della sp dalla collection Parameters dell'oggetto SqlCommand.
In questo thread troverai un esempio simile a quello che vuoi ottenere:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=12216
>Altrimenti questo comando è davvero inutile, si userebbe sempre
>l'executescalar mettendo nella stored procedure una select del
>numero di righe coinvolte come ultima istruzione t-sql. C'ho
>preso???? :D
No, ExecuteScalar restituisce un valore scalare.
>Grazie 1000,
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
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 !