Parametri output

martedì 30 novembre 2004 - 13.16

mon78 Profilo | Junior Member

ciao sto avendo problemi con una stored procedure che dovrebbe ritornarmi un valore;
la stored procedure in sql è

CREATE PROCEDURE [GoCRMAdmin].[SP_EliminaAzienda]
@idazienda int,
@messaggio varchar(50) output
AS
Declare
@num int
begin transaction
set @num=(Select count(IDAzienda) from UTENTE where IDAzienda=@idazienda)
if (@num<>'0')
set @messaggio='Non può essere eliminata lazienda perchè ci sono utenti appartenenti ad essa'
else
begin
Delete from AZIENDA where IDAzienda='1'
set @messaggio='Cancellazione avvenuta'
end
commit transaction
--return @messaggio
GO

nella pagina web la richiamo così:

SqlCommand cmd= new SqlCommand("SP_EliminaAzienda",cntDatabase);
cmd.CommandType=CommandType.StoredProcedure;
cmd.Parameters.Add("@idazienda",idazienda);
SqlParameter param1 = cmd.Parameters.Add("@messaggio",SqlDbType.VarChar);
param1.Direction = ParameterDirection.Output
cmd.ExecuteNonQuery();
cntDatabase.Close();
string mess=param1.Value.ToString();

ma 'mess' non visulaizza nulla. Cosa sto sbagliando?nn so proprio. mi potete aiutare?Grazie mille

Brainkiller Profilo | Guru

Forse perchè dove c'è il return è remmato:

--return @messaggio

Togli il commento forse così verrà valorizzato.

ciao
david

mon78 Profilo | Junior Member

Ciao no, ho provato anke con return e nn cambia niente. Ho visto ke invece tutto funziona se @messaggio è di tipo int e nn varchar; @messaggio int output; quindi questo mi impedisce di assegnare nella stored procedure la stringa, ma devo assegnare un valore intero, e poi nella pagina web a seconda del valore intero devo associare la stringa opportuna. Ma secondo te perkè succede questo?Grazie

Brainkiller Profilo | Guru

In questo momento non lo so. Dovrei ricrearmi io la stored procedure e verificare.
Se non lo sai ti dico che puoi fare il debug delle Stored Procedure da dentro Visual Studio. Nelle proprietà di progetto (io di solito lo faccio nelle Windows Forms) puoi scegliere SQL Debugging Yes. In questo modo quando chiami una SP ti appare anche il codice in T-SQL e passo passo puoi vedere cosa succede se i parametri vengono valorizzati, ecc.

Forse così riesci a capire di più.
ciao
david
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5