none
Cargar procedimiento almacenado en datagridview con un parametro

    Pregunta

  • CREATE PROCEDURE SP_FECHAS_PLAN_DE_PAGOS
    @Num_Contrato as int
    as
    SET DATEFIRST 1
       DECLARE @FechaInicio DATE set @FechaInicio =(Select Fecha_Primer_Dia_Clases from Contrato_Matricula_Tabla where Num_Contrato=@Num_Contrato)
       DECLARE @FechaFin DATE set @FechaFin =(Select Fecha_Fin from Contrato_Matricula_Tabla where Num_Contrato=@Num_Contrato)    
       DECLARE @Fechas Table (Fecha DATE)  
       DECLARE @Lunes DATE 
       SET @Lunes= DATEADD(d, 8 - DatePart(dw, @FechaInicio), @FechaInicio)
    
      INSERT INTO @Fechas VALUES (@FechaInicio)
       WHILE(@Lunes <=@FechaFin) 
       BEGIN
      INSERT INTO @Fechas VALUES (@Lunes)
      SET @Lunes = DATEADD(d, 7, @Lunes)
       END
       
       SELECT Row_Number() over(order by Fecha), Fecha FROM @Fechas

     Private Sub Obtener_Fechas()
            Using cnn As New SqlConnection(configuracion.ConnectionString)
                Dim cmd As New SqlCommand("SP_FECHAS_PLAN_DE_PAGOS", cnn)
                cmd.CommandType = CommandType.StoredProcedure
                With cmd.Parameters
                    .AddWithValue("@Num_Contrato", CInt(Me.txtnumcontrato.Text))
                End With
                Try
                    cnn.Open()
                    cmd.ExecuteNonQuery()
                    Dim da As New SqlDataAdapter("SP_FECHAS_PLAN_DE_PAGOS", cnn)
                    Dim dt As New DataTable
                    da.Fill(dt)
                    DataGridView1.DataSource = dt
    
                Catch ex As Exception
                    MessageBox.Show(ex.Message)
                Finally
                    cmd.Dispose()
                End Try
            End Using

    no se como lograr que el procedimiento almacenado se proyecte en el datagridview, me dice que no encuentra el parametro, a ver si alguien nota que estoy hacienda mal
    viernes, 11 de noviembre de 2016 18:08

Respuestas

  • Hola Efrain Diaz,

    ¿Por qué haces dos consultas al mismo StoredProcedure ?

    Si te fijas bien solo le asignas el parámetro mediante el AddWithValue al SQLCommand pero luego declaras un nuevo SQLDataAdapter con el mismo StoredProcedure pero ahí no le asignas el parámetro.

    Si solo quieres obtener el resultado puedes usar solamente el SQLDataAdapter :

    Private Sub Obtener_Fechas()
        Try
            Using cnn As New SqlConnection(configuracion.ConnectionString)
                Dim da As New SqlDataAdapter("SP_FECHAS_PLAN_DE_PAGOS", cnn)
                da.SelectCommand.CommandType = CommandType.StoredProcedure
    
                da.SelectCommand.Parameters.AddWithValue("@Num_Contrato", CInt(Me.txtnumcontrato.Text))
    
                Dim dt As New DataTable
                da.Fill(dt)
    
                DataGridView1.DataSource = dt
            End Using
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta Efrain Diaz viernes, 11 de noviembre de 2016 18:40
    viernes, 11 de noviembre de 2016 18:22