Recuperare il valore restituito da una SP

martedì 05 settembre 2006 - 09.32

bluland Profilo | Guru

salve,
ho una stored procedure che a seconda delle condizione fa:

if ''
return 1
else
return 0


Vorrei capire come posso visualizzare sulla mia pagina aspx il risultato del return

consigli?
saluti
ENzo

micto27 Profilo | Senior Member

>salve,
>ho una stored procedure che a seconda delle condizione fa:
>
>if ''
>return 1
>else
>return 0
>
>
>Vorrei capire come posso visualizzare sulla mia pagina aspx il
>risultato del return
>
>consigli?
>saluti
>ENzo
>

devi definire sul Command che esegue la stored procedure un parametro
di tipo Int con la proprietà
Direction = ParameterDirection.ReturnValue

Ciao, Michele

bluland Profilo | Guru

>devi definire sul Command che esegue la stored procedure un parametro
>di tipo Int con la proprietà
>Direction = ParameterDirection.ReturnValue

allora io avevo fatto in questo modo:

Dim param As SqlParameter


param = cmd.Parameters.Add("outp", SqlDbType.Int)
param.Direction = ParameterDirection.ReturnValue


Me.Labcheck.Text = cmd.Parameters("outp").Value

solo che mi restituisce sempre un campo vuoto, mentre nella sp e' previsto un return 0 o 1

idee?

>Ciao, Michele
Ciao, Enzo

micto27 Profilo | Senior Member

>>devi definire sul Command che esegue la stored procedure un parametro
>>di tipo Int con la proprietà
>>Direction = ParameterDirection.ReturnValue
>
>allora io avevo fatto in questo modo:
>
>Dim param As SqlParameter
>
>
>param = cmd.Parameters.Add("outp", SqlDbType.Int)
>param.Direction = ParameterDirection.ReturnValue
>
>
>Me.Labcheck.Text = cmd.Parameters("outp").Value
>
>solo che mi restituisce sempre un campo vuoto, mentre nella sp
>e' previsto un return 0 o 1
>
>idee?
>
>>Ciao, Michele
>Ciao, Enzo

Il parametro in questione è il primo della collezione Parameters?

Non so se è importante ma per abitudine in questi casi (forse ADO voleva così)
ho sempre definito tale parametro per primo e a me funziona.

Ciao, Michele

bluland Profilo | Guru

ecco l'intero codice:

Try Me.Connord.Open() Dim cmd As New SqlCommand("up_AddRow", Me.Connord) Dim param As SqlParameter cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Add("@SpA_Order", Me.Txtordspa.Text.Trim) cmd.Parameters.Add("@Sud_Order", Me.Txtordsud.Text.Trim) cmd.Parameters.Add("@NRPL", Me.Txtnrpl.Text.Trim) param = cmd.Parameters.Add("outp", SqlDbType.Int) param.Direction = ParameterDirection.ReturnValue Dim read As SqlDataReader Me.Labcheck.Visible = True Me.Labcheck.Text = cmd.Parameters("outp").Value read = cmd.ExecuteReader(CommandBehavior.CloseConnection) Me.Txtnrpl.Text = "" Catch ex As Exception End Try


che ne dici?

micto27 Profilo | Senior Member

Prova a vedere se così ti cambia qualcosa..

Try Me.Connord.Open() Dim cmd As New SqlCommand("up_AddRow", Me.Connord) Dim param As SqlParameter cmd.CommandType = CommandType.StoredProcedure param = cmd.Parameters.Add("outp", SqlDbType.Int) param.Direction = ParameterDirection.ReturnValue cmd.Parameters.Add("@SpA_Order", Me.Txtordspa.Text.Trim) cmd.Parameters.Add("@Sud_Order", Me.Txtordsud.Text.Trim) cmd.Parameters.Add("@NRPL", Me.Txtnrpl.Text.Trim) Dim read As SqlDataReader Me.Labcheck.Visible = True Me.Labcheck.Text = cmd.Parameters("outp").Value read = cmd.ExecuteReader(CommandBehavior.CloseConnection) Me.Txtnrpl.Text = "" Catch ex As Exception End Try

bluland Profilo | Guru

mmm niente!!

ecco la sp che uso:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

bluland Profilo | Guru

ho trovato l'errore:

valorizzavo la label prima della chiusura della connessione invece va fatto dopo!!
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 !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5