none
Error al Ejecutar Procedimiento almacenado UPDATE RRS feed

  • Pregunta

  • Buenas Tardes 

    estoy intentando actualizar unos datos con un procedimiento almacenado y me da el error: "El procedimiento o función sp_actualizar_cliente  esperaba el parámetro @id_cliente, que no se ha especificado"

    este es el procedimiento:

    ALTER PROCEDURE [dbo].[sp_actualizar_cliente]
    
    @id_cliente int,
    @cc_cliente float,
    @cod_roperia nchar(10),
    @ape1_cliente nvarchar(50),
    @ape2_cliente nvarchar(50),
    @nom1_cliente nvarchar(50),
    @nom2_cliente nvarchar(50),
    @tel_cliente nchar(15),
    @tel_celular nchar(15),
    @veces_semana int,
    @peso_autorizado int,
    @cant_marquillas int,
    @f_ingreso date,
    @ultimo_pago date
    
    AS
    
    UPDATE tbl_clientes
    SET cc_cliente=@cc_cliente,cod_roperia=@cod_roperia,ape1_cliente=@ape1_cliente,ape2_cliente=@ape2_cliente,nom1_cliente=@nom1_cliente,nom2_cliente=@nom2_cliente,tel_cliente=@tel_cliente,cel_cliente=@tel_celular,veces_semana=@veces_semana,peso_autorizado=@peso_autorizado,cant_marquillas=@cant_marquillas,f_ingreso=@f_ingreso,ultimo_pago=@ultimo_pago WHERE id_cliente=@id_cliente

    y esta es la función:

    Public Function actualizar_cliente(cliente As cliente_base) As Boolean
            Try
                conectado()
                cmd = New SqlCommand("sp_actualizar_cliente")
                cmd.Connection = cnn
                cmd.Parameters.AddWithValue("@id_cliente", cliente.num_persona)
                cmd.Parameters.AddWithValue("@cc_cliente", cliente.cc_persona)
                cmd.Parameters.AddWithValue("@cod_roperia", cliente.codigo_roperia)
                cmd.Parameters.AddWithValue("@ape1_cliente", cliente.apellido1)
                cmd.Parameters.AddWithValue("@ape2_cliente", cliente.apellido2)
                cmd.Parameters.AddWithValue("@nom1_cliente", cliente.nombre1)
                cmd.Parameters.AddWithValue("@nom2_cliente", cliente.nombre2)
                cmd.Parameters.AddWithValue("@tel_cliente", cliente.tel_fijo)
                cmd.Parameters.AddWithValue("@tel_celular", cliente.tel_celular)
                cmd.Parameters.AddWithValue("@veces_semana", cliente.v_semana)
                cmd.Parameters.AddWithValue("@peso_autorizado", cliente.p_autorizado)
                cmd.Parameters.AddWithValue("cant_marquillas", cliente.cantidad_marquillas)
                cmd.Parameters.AddWithValue("@f_ingreso", cliente.fecha_ingreso)
                cmd.Parameters.AddWithValue("@ultimo_pago", cliente.ult_pago)
                If CBool(cmd.ExecuteNonQuery) Then
                    Return True
                Else
                    Return False
                End If
            Catch ex As Exception
                MsgBox(ex.Message)
                Return False
            Finally
                desconectar()
            End Try
        End Function

    y este botón llama la función:

    Private Sub cmd_update_cliente_Click(sender As Object, e As EventArgs) Handles cmd_update_cliente.Click
            Dim cliente As New cliente_base
            Dim actualizar As New funciones
            Try
                cliente.num_persona = CInt(Me.txt_id_cliente.Text)
                cliente.cc_persona = CDbl(txt_cc_cliente.Text)
                cliente.codigo_roperia = CStr(txt_cod_roperia.Text)
                cliente.apellido1 = CStr(txt_ape1_cliente.Text)
                cliente.apellido2 = CStr(txt_ape2_cliente.Text)
                cliente.nombre1 = CStr(txt_nom1_cliente.Text)
                cliente.nombre2 = CStr(txt_nom2_cliente.Text)
                cliente.tel_fijo = CDbl(txt_tel_cliente.Text)
                cliente.tel_celular = CDbl(txt_tel_celular.Text)
                cliente.v_semana = CInt(txt_veces_semana.Text)
                cliente.p_autorizado = CInt(txt_peso_autorizado.Text)
                cliente.cantidad_marquillas = CInt(txt_cant_marquillas.Text)
                cliente.fecha_ingreso = CDate(cbox_f_ingreso.Text)
                cliente.ult_pago = CDate(cbox_ultimos_pago.Text)
                If actualizar.actualizar_cliente(cliente) = True Then
                    MsgBox("cliente Actualizado correctamente")
                    Dispose()
                Else
                    MsgBox("Error al Actualizar cliente por favor revisar los datos", MsgBoxStyle.Critical)
    
                End If
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
        End Sub

    no encuentro el error por ningún lado gracias

    uso SQL EXPRESS 2012 y VB.NET 2012 EXPRESS

    Gracias

    martes, 5 de noviembre de 2013 18:53

Respuestas

  • veo que aqui

     cmd.Parameters.AddWithValue("cant_marquillas", cliente.cantidad_marquillas)

    no pones el @, pero no creo que ese sea el error

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Freddy Aragon lunes, 6 de julio de 2015 23:26
    martes, 5 de noviembre de 2013 18:58

Todas las respuestas