Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,584

    [vb.net] restituire valori da SP

    salve a tutti
    sto provando le stored procedure, vorrei restituire un valore ma penso che sto sbagliando qualcosa
    dato il seguente codice vb.net
    codice:
          Dim objconn As SqlConnection
            Dim istruzionesql As String
            Dim objcomm As New SqlCommand
            Dim objparam As SqlParameter
            Dim objdata As SqlDataReader
    
            Dim stringaconn = "Data Source=.\SQLEXPRESS;initial Catalog=prova;integrated Security=true;"
    
            objconn = New SqlConnection(stringaconn)
            objconn.Open()
            istruzionesql = "sp_prova2"
     
            objcomm.CommandType = CommandType.StoredProcedure
            objcomm.CommandText = istruzionesql
            objcomm.Connection = objconn
    
            Dim P As SqlParameter
            P = objcomm.Parameters.Add(New SqlParameter("@PARAM1", SqlDbType.Int, 6, ParameterDirection.Output))
            P.Value = 22
            P = objcomm.Parameters.Add(New SqlParameter("@PARAM2", SqlDbType.Int, 6, ParameterDirection.Output))
            P.Value = 11
      
            Try
                objdata = objcomm.ExecuteReader()
                MsgBox(objcomm.Parameters("@PARAM1").Value)
                MsgBox(objcomm.Parameters("@PARAM2").Value)
                objdata.Close()
            Catch ex As Exception
                MsgBox(ex.ToString)
            End Try
    
    
            objconn.Close()
    e la seguente stored procedure
    codice:
    ALTER PROCEDURE [dbo].[sp_prova2] 
    	
    	(
    	@Param1 int OUTPUT,
    	@Param2 int OUTPUT
    	)
    	
    AS
    
    select * from PRova
    	 
    	 select @Param1=1
    	 select @Param2=2
    	 SET NOCOUNT ON  
    	RETURN
    come potete leggere, vorrei restituire 2 valori, esattamente valorizzando
    param1 e param2 con dei valori diversi da quello che passo dalla form
    ma puntualmente mi viene restituiti i valori 11 e 22
    facendo il debug, dentro sql server, non appena il debugger arriva a valorizzare questi
    parametri, li setta dando i valori 1 e 2 (quindi giusti), ma appena ritorno con il
    debut nella windows form, ecco che il messagebox mi restituisce 11 e 22!!!
    cosa sbaglio?
    grazie
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  2. #2
    sembra corretto...
    prova a chiudere il datareader PRIMA di stampare i parametri OUTPUT...il che avrebbe anche senso

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.