Visual Basic.NET - recuperacion de variable de salida de un procedimiento

   
Vista:
Imágen de perfil de kike

recuperacion de variable de salida de un procedimiento

Publicado por kike kiketo@hotmail.com (13 intervenciones) el 13/06/2015 08:41:26
kiero recuperar de un procedimiento almacenado la suma del importe de cada factura

1
2
3
4
5
6
7
8
9
10
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[suma_importe]
@nro_ped as int,
@vimporte as decimal(8,2) output
as
select  sum(precio_tot) from pedidos as Vimporte where nro_ped=@nro_ped
return @vimporte

para esto en mi formulario pongo:

1
2
3
4
5
6
7
8
9
10
11
Private Sub actualiza()
dim ximpte as decimal
        Try
            Dim func As New Fpedidos
          ximpte=  func.sumaImporte()
 
 
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub

y la funcion sumaImporte()
es :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Public Sub sumaImporte()
        Dim vimporte As Decimal
        vimporte = 0
        Try
            conectado()
            cmd = New SqlCommand("suma_importe")
            cmd.CommandType = CommandType.StoredProcedure
            cmd.Connection = cnn
            cmd.Parameters.Add("@nro_ped", SqlDbType.NVarChar, 50).Value = FrmPedidos.txtNro.Text
            cmd.Parameters.AddWithValue("@vImporte", vimporte)
            If cmd.ExecuteNonQuery Then
                'Return vimporte
            Else
                ' Return False
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
            'Return False
        End Try
    End Sub

no se si uno o todos de los procedimeintos est'a mal pero ximpte que debe darme el resultado se keda en cero.

alguna ayuda ?????
lo agredezco desde ya
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Wilfredo Patricio Castillo

recuperacion de variable de salida de un procedimiento

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Public Sub sumaImporte()
        Dim vimporte As Decimal
        vimporte = 0
        Try
            conectado()
            cmd = New SqlCommand("suma_importe")
            cmd.CommandType = CommandType.StoredProcedure
            cmd.Connection = cnn
            cmd.Paramters.Add("@vImporte",SQLDbType.Decimal).Direction=ParameterDirecion.Output
            cmd.Parameters.Add("@nro_ped", SqlDbType.NVarChar, 50).Value = FrmPedidos.txtNro.Text
            dim Correcto as integer=cmd.ExecuteNonQuery
            if Correcto=0 then
                   'Aqui código para ver si algo falló puede ser un mensaje, ya que lo tienes todo en un formulario
            end if
          dim mImporte as Object
          mImporte=cmd.Paramerters(0).Value
          if  not Isnothing(mImporte) then
               vimporte=Convert.ToDecimal(mImporte)
          end if
          return vImporte
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub


Ese sería el código para recuperar la suma desde tu store procedure.


Y mi estimado kike, la palabra es quiero y no kiero, en la medida de lo posible tratemos de parecer vulgares vagos.

Saludos cordiales
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kike

recuperacion de variable de salida de un procedimiento

Publicado por kike (13 intervenciones) el 16/06/2015 03:26:56
Tiene razón Wilfredo la palabra es quiero, y sigo queriendo pues sigue saliendo tanto vimporte como mimporte con valores enteros , gracias por la ayuda....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kike

recuperacion de variable de salida de un procedimiento

Publicado por kike (13 intervenciones) el 16/06/2015 02:58:06
tenia el mismo problema, cambia la funcion por lo siguiente... el problema ahora es que me devuelve valores enteros....



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Public Function sumaImporte()
        Dim vimporte As Decimal
        vimporte = 0.0
        Try
            conectado()
            cmd = New SqlCommand("suma_importe")
            cmd.CommandType = CommandType.StoredProcedure
            cmd.Connection = cnn
            cmd.Parameters.Add("@nro_ped", SqlDbType.NVarChar, 50).Value = FrmPedidos.txtNro.Text
            cmd.Parameters.AddWithValue("@vImporte", vimporte)
            cmd.Parameters("@vImporte").Direction = ParameterDirection.Output
            cmd.ExecuteScalar()
            vimporte = cmd.Parameters("@vimporte").Value
            Return vimporte
        Catch ex As Exception
            MsgBox(ex.Message)
            Return False
        Finally
            desconectado()
        End Try
    End Function
End Class
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Wilfredo Patricio Castillo

recuperacion de variable de salida de un procedimiento

Algo debe haber que no se está viendo en todo este problema.

Podemos echarle una mirada via teamviewer, asi que si te parece me contactas via skype.

Saludos cordiales
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar