none
Como llenar un Data Grid usando una consulta SQL

Respuestas

  • Hola G Prado,

    Esto es un ejemplo de como llenar un DataGridView a partir de una consulta a SQL. Tambien puedes usarlo 'tipado' desde el explorador de datos, arrastrando la tabla y enlazandola al DataGridView seleccionando las vistas con el mandato 'Select'.
    Espero te sirva,
    Pep Lluis,

     

    Public Class Form1

        Inherits System.Windows.Forms.Form

     

        Private dataGridView1 As New DataGridView()   'Llamar al constructor

        Private bindingSource1 As New BindingSource() 'Crear el enlace datos

        Private AdaptadorDeDatos As New SqlClient.SqlDataAdapter  

        <STAThreadAttribute()> _

        Public Shared Sub Main()

            Application.Run(New Form1())              'Ejecutar aplicacion

        End Sub

        ''

        '' Inicializar el form y controles.

        ''

        Public Sub New()

     

            Me.dataGridView1.Dock = DockStyle.Fill   'dock del dataGrid

     

            Dim panel As New FlowLayoutPanel()       'Crear panel

            panel.Dock = DockStyle.Top               'Asignar dock

            panel.AutoSize = True                    'definir tamaño

     

            'Anadir Datagrid a la coleccion de controles

            Me.Controls.AddRange(New Control() {Me.dataGridView1, panel})

            Me.Text = "Ejemplo : DataGridView - Consulta a SQL"

     

        End Sub

        ''

        '' Al cargar el Form

        Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) _

            Handles Me.Load

            'Enlazar el DataGrid con el 'bindingsource

            Me.dataGridView1.DataSource = Me.bindingSource1

            'RELLENAR EL DataGriView

            'A partir de la consulta a SQL

            LeerDatos("select * from Shippers")

        End Sub

        '

        Private Sub LeerDatos(ByVal selectCommand As String)

            Try

                ' Especificar un 'connection string' valido

                '

                Dim connectionString As String = "Data Source=..SQL;Initial Catalog=Northwind"

     

                ' Nuevo adaptador de datos vasado en el 'query' especificado

                Me.AdaptadorDeDatos = New SqlClient.SqlDataAdapter(selectCommand, connectionString)

     

                ' Crear un 'commandbuilder' que genere el SQL Update/Insert/Delete

                ' segun el 'selectcommand', usado para actualizar la BD

                Dim commandbuilder As New SqlClient.SqlCommandBuilder(Me.AdaptadorDeDatos)

     

                ' Llenar la tabla con los datos y enlazarza con el 'bindingsource'

                Dim tabla As New DataTable()

                Me.AdaptadorDeDatos.Fill(tabla)

                Me.bindingSource1.DataSource = tabla

     

                ' Dimensionar columnas DataGrid y ajustalarlas al contenido

                Me.dataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader)

            Catch ex As Exception

                MessageBox.Show("Excepcion al leer los datos:" + ex.Message)

            End Try

        End Sub

    End Class

    jueves, 21 de diciembre de 2006 15:11
  • Hola Freval,

    Puedes relacionar las dos BD's añadiendo columnas de una u otra tabla...

    Aqui tienes un ejemplo... si tienes dificultades o no te sirve, contacta de nuevo y vemos como montar un ejemplo mas especifico.

     

    http://msmvps.com/blogs/peplluis/archive/2008/06/04/dos-tablas-y-sus-relaciones-en-un-datagridview-con-comboboxcolumn.aspx

    Saludos,

    Pep Lluis,

     

    viernes, 20 de junio de 2008 6:44
  • Se me hace ilogico, el porque no utilizar un ADO, en un data grid

    bueno a mi gusto, es muy facil llenar un Data grid con Ado

    yo he utilizado el Ado para llenar un MSHFlexGrid, que es muco mas facil de llenar y rapido, con el ADO mediante el Recordset

    aqui te voy a mandar mi ejemplo de como llenar un MSHFlexGrid, que sirve mejor que el data grid
    por si llegaras a cambiar de parecer.

    Es un link, de Recursos Visual Basic, donde muestra el ejemplo:

    http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/256-flexgrid-additem-ado.htm

    Espero que te sirva!!!!
    miércoles, 25 de junio de 2008 20:12

Todas las respuestas

  • Hola G Prado,

    Esto es un ejemplo de como llenar un DataGridView a partir de una consulta a SQL. Tambien puedes usarlo 'tipado' desde el explorador de datos, arrastrando la tabla y enlazandola al DataGridView seleccionando las vistas con el mandato 'Select'.
    Espero te sirva,
    Pep Lluis,

     

    Public Class Form1

        Inherits System.Windows.Forms.Form

     

        Private dataGridView1 As New DataGridView()   'Llamar al constructor

        Private bindingSource1 As New BindingSource() 'Crear el enlace datos

        Private AdaptadorDeDatos As New SqlClient.SqlDataAdapter  

        <STAThreadAttribute()> _

        Public Shared Sub Main()

            Application.Run(New Form1())              'Ejecutar aplicacion

        End Sub

        ''

        '' Inicializar el form y controles.

        ''

        Public Sub New()

     

            Me.dataGridView1.Dock = DockStyle.Fill   'dock del dataGrid

     

            Dim panel As New FlowLayoutPanel()       'Crear panel

            panel.Dock = DockStyle.Top               'Asignar dock

            panel.AutoSize = True                    'definir tamaño

     

            'Anadir Datagrid a la coleccion de controles

            Me.Controls.AddRange(New Control() {Me.dataGridView1, panel})

            Me.Text = "Ejemplo : DataGridView - Consulta a SQL"

     

        End Sub

        ''

        '' Al cargar el Form

        Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) _

            Handles Me.Load

            'Enlazar el DataGrid con el 'bindingsource

            Me.dataGridView1.DataSource = Me.bindingSource1

            'RELLENAR EL DataGriView

            'A partir de la consulta a SQL

            LeerDatos("select * from Shippers")

        End Sub

        '

        Private Sub LeerDatos(ByVal selectCommand As String)

            Try

                ' Especificar un 'connection string' valido

                '

                Dim connectionString As String = "Data Source=..SQL;Initial Catalog=Northwind"

     

                ' Nuevo adaptador de datos vasado en el 'query' especificado

                Me.AdaptadorDeDatos = New SqlClient.SqlDataAdapter(selectCommand, connectionString)

     

                ' Crear un 'commandbuilder' que genere el SQL Update/Insert/Delete

                ' segun el 'selectcommand', usado para actualizar la BD

                Dim commandbuilder As New SqlClient.SqlCommandBuilder(Me.AdaptadorDeDatos)

     

                ' Llenar la tabla con los datos y enlazarza con el 'bindingsource'

                Dim tabla As New DataTable()

                Me.AdaptadorDeDatos.Fill(tabla)

                Me.bindingSource1.DataSource = tabla

     

                ' Dimensionar columnas DataGrid y ajustalarlas al contenido

                Me.dataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader)

            Catch ex As Exception

                MessageBox.Show("Excepcion al leer los datos:" + ex.Message)

            End Try

        End Sub

    End Class

    jueves, 21 de diciembre de 2006 15:11
  • Si tienes un objeto conexion que imagino que lo tengas para conectar con la base de datos, porque sino no se como vas a acceder, puedes usar objConexion.execute(SQL)

     

    algo parecido a esto quizas te pueda ayudar

    DataGrid.DataSource=oConexion.excete(SQL)

    jueves, 21 de diciembre de 2006 15:15
  • hola buenos dias,, por favor necesito ayuda de alguno de uds.

    Quisiera formular una pregunta pero no sé por donde hacerlo, por favor diganme cómo uds. hacen para formular una pregunta...??

    lunes, 14 de mayo de 2007 13:14
  • Hola!

    Debes dirigirte al foro donde deseas formular la pregunta y crear un "nuevo tema".

    Saludos,

    Pep Lluis,

     

    martes, 15 de mayo de 2007 7:34
  • muy buen ejemplo y bien documentado. mis felicitaciones, ahora tengo varias dudas.
    1.como puedo llenar el datagrid con algunos datos cargados en variables me explico mejor, tengo un programa que toma unos datos en casillas de llenado manual, con eso alimento unas variables, quiero mostrar el contenido de las variables en un datagrid para confirmacion y asi pasar a la base de datos.
    2. yo hago la consulta sql a 2 tablas y quiero que mi datagrid muestre unos campos de una tabla y otros campos de la otra, puedo hacer esto. es decir tengo una tabla con datos personales ta_datos(id_cliente,nombre, apellido, dir, telefono) y la tabla  servicio ta_servicio(id_servicio,descripcion,vendedor,id_cliente), quiero mostrar en el datagrid (id_cliente, nombre_cliente, id_servicio, descripcion). como puedo hacer esto?

    gracias por su respuesta

    jueves, 19 de junio de 2008 15:15
  • Hola Freval,

    Puedes relacionar las dos BD's añadiendo columnas de una u otra tabla...

    Aqui tienes un ejemplo... si tienes dificultades o no te sirve, contacta de nuevo y vemos como montar un ejemplo mas especifico.

     

    http://msmvps.com/blogs/peplluis/archive/2008/06/04/dos-tablas-y-sus-relaciones-en-un-datagridview-con-comboboxcolumn.aspx

    Saludos,

    Pep Lluis,

     

    viernes, 20 de junio de 2008 6:44
  •  

    muchas gracias si este es uno de los punto s que tenia en duda , los trabajare y se tengo otra duda por aqui estare.

    de nuevo muchas gracias por su respuesta muy util.

     

    PD/ no encuentro el boton/link o similar que dice "respuesta correcta"

    viernes, 20 de junio de 2008 14:26
  • jajajaja... sera por los anuncios de Javier... esto mas que un post de pregunta/respuesta parece un "vamos a publicidad y volvemos de la tele!"

    No te preocupes, aunque creo que es eso que aparece como "Ha resultado útil este mensaje?".

     

    De todas formas me alegro de la utilidad!

    Pep Lluis,

     

     

    viernes, 20 de junio de 2008 15:03
  • Se me hace ilogico, el porque no utilizar un ADO, en un data grid

    bueno a mi gusto, es muy facil llenar un Data grid con Ado

    yo he utilizado el Ado para llenar un MSHFlexGrid, que es muco mas facil de llenar y rapido, con el ADO mediante el Recordset

    aqui te voy a mandar mi ejemplo de como llenar un MSHFlexGrid, que sirve mejor que el data grid
    por si llegaras a cambiar de parecer.

    Es un link, de Recursos Visual Basic, donde muestra el ejemplo:

    http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/256-flexgrid-additem-ado.htm

    Espero que te sirva!!!!
    miércoles, 25 de junio de 2008 20:12