none
Cargar Datagridview con SqlDataReader RRS feed

  • Pregunta

  • Saludos, cordiales como puedo cargar el segundo datagridview (DETALLE GUIA) utilizando SqlDataReader u otro método

    los textbox los lleno con:

    Try
                TextBox1.Enabled = True
                cn.Open()
                Dim cmd As New SqlCommand
                cmd.Connection = cn
                cmd.CommandType = CommandType.StoredProcedure
                cmd.CommandText = "DETALLE_MAESTROCOTI"
                cmd.Parameters.Add(New SqlParameter("@codicoti", SqlDbType.VarChar)).Value = TextBoxX1.Text.Trim()
                Dim dr As SqlDataReader
                dr = cmd.ExecuteReader
                If dr.Read Then
                    Me.MaskedTextBox1.Text = dr(2).ToString
                    Me.ComboBox1.Text = dr(1).ToString
                    Me.Label8.Text = dr(4).ToString
                    Me.Label9.Text = dr(3).ToString

                End If
            Catch ex As Exception

            Finally
                cn.Close()
            End Try

    agradeceré su pronta respuesta


    David Mayurí Rojas

    lunes, 21 de diciembre de 2015 0:40

Respuestas

  • Hola David.M.R,

    Entiendo que obtienes los registros del detalle a razón del campo [codicoti]. Va por lo mismo:

    Using cn As New SqlConnection("CADENA_CONEXION")
    	Dim dt As New DataTable()
    	Dim cmd As New SqlCommand("MiProcedimiento", cn)
    
    	cmd.CommandType = CommandType.StoredProcedure
    
    	cmd.Parameters.AddWithValue("@codicoti", TextBox1.Text)
    
    	Dim da As New SqlDataAdapter(cmd)
    	da.Fill(dt)
    
    	dgvDetalleGuia.DataSource = dt
    End Using


    lunes, 21 de diciembre de 2015 1:41

Todas las respuestas

  • Hola David.M.R,

    Entiendo que obtienes los registros del detalle a razón del campo [codicoti]. Va por lo mismo:

    Using cn As New SqlConnection("CADENA_CONEXION")
    	Dim dt As New DataTable()
    	Dim cmd As New SqlCommand("MiProcedimiento", cn)
    
    	cmd.CommandType = CommandType.StoredProcedure
    
    	cmd.Parameters.AddWithValue("@codicoti", TextBox1.Text)
    
    	Dim da As New SqlDataAdapter(cmd)
    	da.Fill(dt)
    
    	dgvDetalleGuia.DataSource = dt
    End Using


    lunes, 21 de diciembre de 2015 1:41
  • Gracias por el aporte Williams si sirvió pero lo agregar al grid en columnas aparte y yo ya tengo las columnas creadas solo para recibir los datos como seria en este caso

    David Mayurí Rojas

    lunes, 21 de diciembre de 2015 16:18
  • Hola David.M.R,

    Puedes configurar la propiedad AutoGenerateColumn del objeto DataGridView a false.

    dgvDetalleGuia.AutoGenerateColumns = false
    
    dgvDetalleGuia.DataSource = dt



    lunes, 21 de diciembre de 2015 16:26
  • hola

    podrias agregarle una columna extra al datatable para mapear esa columna extra que define en el grid

    Dim da As New SqlDataAdapter(cmd) da.Fill(dt)

    dt.Columns.Add("nombrecolumna", Type.GetType("System.String")) dgvDetalleGuia.DataSource = dt

    Adding Columns to a DataTable

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 21 de diciembre de 2015 16:57
  • Hola David.M.R,

    Entiendo que obtienes los registros del detalle a razón del campo [codicoti]. Va por lo mismo:

    Using cn As New SqlConnection("CADENA_CONEXION")
    	Dim dt As New DataTable()
    	Dim cmd As New SqlCommand("MiProcedimiento", cn)
    
    	cmd.CommandType = CommandType.StoredProcedure
    
    	cmd.Parameters.AddWithValue("@codicoti", TextBox1.Text)
    
    	Dim da As New SqlDataAdapter(cmd)
    	da.Fill(dt)
    
    	dgvDetalleGuia.DataSource = dt
    End Using


    cn.Open()
            Dim cmd21 As New SqlCommand("DETALLE_MAESTROCOTI2", cn)
            cmd21.Parameters.AddWithValue("@codicoti", TextBoxX1.Text)
            cmd21.CommandType = CommandType.StoredProcedure
    
            Dim lector As SqlDataReader
            lector = cmd21.ExecuteReader
            DataGridViewX2.Rows.Clear()
    
            While lector.Read()
                DataGridViewX2.Rows.Add(lector.GetString(0), lector.GetValue(1), lector.GetValue(3), lector.GetValue(2))
            End While
    
            cn.Close()
    

    Listo, Gracias

    Willams Morales y Leandro Tuttini


    David Mayurí Rojas

    lunes, 21 de diciembre de 2015 18:45