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
ASP.NET 1.0/1.1
Sqlparameter e store procedure
mercoledì 24 agosto 2005 - 11.52
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
PEPE
Profilo
| Senior Member
296
messaggi | Data Invio:
mer 24 ago 2005 - 11:52
Salve,
il mio problema e' che non riesco a recuperare un parametro dall'oggetto sqlcommand che esegue una storeprocedure.
Per semplicità vi posto direttamente la storeprocedure e il codice vb.
STORE PROCEDURE:
CREATE PROCEDURE DBO.INSERISCI_STAB_GENERALITA
(
@CODSTAB varchar(50) out, --Variabile per il codice stabilimento del tipo aa001
@ISTAT_REGIONE varchar(50) --Variabile corrispondente al codice regione dello stabilimento.
)
AS
DECLARE
@LETTERE varchar(2), --var di appoggio per la codifica della regione
@NUMERO int --var di appoggio per l'id dello stabiliemnto
BEGIN
--Seleziono il codice regione ed il contatore degli stabilimenti per creare il codice stabilimento
SELECT @LETTERE=SiglaCodifica, @NUMERO=NumeroCorrente FROM StatoCodiciUnivoci WHERE istat_regione=@ISTAT_REGIONE
-- Incremento il contatore degli id degli stabilimenti
SET @NUMERO= @NUMERO+1
--Aggiorno la tabella relativa ai codici degli stabilimenti
UPDATE StatoCodiciUnivoci SET Numerocorrente=@NUMERO WHERE istat_regione=@ISTAT_REGIONE
-- Genero l'id dello stabilimento grazie alla sigla ed al prograssivo
SET @CODSTAB= @LETTERE + cast(@NUMERO as varchar(3))
-- Inserisco i dati dello stabilimento nella tabella
INSERT INTO prova (Codice_Univoco) VALUES (@CODSTAB)
END
GO
CODICE CODE BEHIND
Dim ObjElementi As New ComponentArir.Elenchi
Dim objCommand As New SqlClient.SqlCommand
Dim objP As New SqlClient.SqlParameter
objP.Direction = ParameterDirection.Output
objP.ParameterName = "@CODSTAB"
objP.Value = "null"
objCommand.Parameters.Add(New SqlClient.SqlParameter("@ISTAT_REGIONE", "01"))
objCommand.Parameters.Add(objP)
'Procedura di una classe che esegue l'update
Dim risultato As Int32 = ObjElementi.EseguiUpdate(ComponentArir.Elenchi.manipulationProcedure.InserisciStabilimentoGeneralita, objCommand)
lblmessage.Text = objCommand.Parameters("@CODSTAB").Value & " - Stabilimento"
La store procedure funziona correttamente infatti nella tabella prova ho il corretto contenuto del codice stabilimento.
Quello che non mi funziona e' la stampa del parametro.
Infatti quando vado a fare objCommand.Parameters("@CODSTAB").Value non mi da nulla.
Qual'e' il problema?
Cteniza
Profilo
| Guru
1.509
messaggi | Data Invio:
mer 24 ago 2005 - 13:06
Ti sei ricordato di mettere:
myCommand.CommandType = CommandType.StoredProcedure
?
PEPE
Profilo
| Senior Member
296
messaggi | Data Invio:
mer 24 ago 2005 - 14:21
Si certo, tanto e' vero che la store procedure mi funziona correttamente quando vado ad eseguire il metodo.
Non vorrei che le variabili di output siano considerate dal command solo se vengono assegnate durante una select del tipo @nomevar=nomecampotabella, che nella mia store procedure non viene effettuato.
PEPE
Profilo
| Senior Member
296
messaggi | Data Invio:
mer 24 ago 2005 - 15:18
Sono riuscito a risolvere il problema.
al posto di dichiarare un oggetto sqlparameter e di includerlo nella collection dei parametri dell'oggetto command, ho usato il metodo new sqlparameter all'interno dell'oggetto command.
objCommand.Parameters.Add(New SqlClient.SqlParameter("@CODSTAB", SqlDbType.NVarChar, 50, ParameterDirection.InputOutput, True, 0, 0, "", DataRowVersion.Current, "null"))
Ora e' tutto ok
Quando eseguo l'insert e recupero il valore me lo visualizza correttamente.
lblmessage.Text = objCommand.Parameters("@CODSTAB").Value & " - Stabilimento"
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 !