Este sistema es básicamente idéntico al anterior, pero se hace desde nuestro programa, y se obtiene los mismos resultados. Solo que no disponemos de la aplicación que nos configura , o nos ofrece las propiedades del mismo.
Dim Columna As New DataGridViewTextBoxColumn
Columna.Name = "Codigo"
Columna.HeaderText = "Código"
DataGrid.Columns.Add(Columna)
Columna = New DataGridViewTextBoxColumn
Columna.Name = "Descr"
Columna.HeaderText = "Descripción"
DataGrid.Columns.Add(Columna)
Columna = New DataGridViewTextBoxColumn
Columna.Name = "Importe"
Columna.HeaderText = "Importe"
DataGrid.Columns.Add(Columna)
O bien también se puede hacer:
Private Sub ConfigurarDataGrid()
'
' El objeto es un DataGridView
'
DataGrid.ColumnCount = 4
DataGrid.Columns.Item(0).Name = "Tipo"
DataGrid.Columns.Item(0).HeaderText = "Tipo"
DataGrid.Columns.Item(1).Name = "Codigo"
DataGrid.Columns.Item(1).HeaderText = "Código"
DataGrid.Columns.Item(2).Name = "Titulo"
DataGrid.Columns.Item(2).HeaderText = "Título"
DataGrid.Columns.Item(3).Name = "Cantidad"
DataGrid.Columns.Item(3).HeaderText = "Cantidad"
DataGrid.Columns.Item(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
ConfigDataGrid(Me, DataGrid)
DataGrid.Columns(0).Width = CInt(DataGrid.Width * 0.1)
DataGrid.Columns(1).Width = CInt(DataGrid.Width * 0.1)
DataGrid.Columns(2).Width = CInt(DataGrid.Width * 0.6)
DataGrid.Columns(3).Width = CInt(DataGrid.Width * 0.1)
End Sub
Una vez creada la estructura, podemos ejecutar el procedimiento estándar de configuración.
Mediante este sistema creamos un DataGrid que posee una columna para cada uno de los campos que figuran en la consulta SQL que hemos creado en nuestro programa.
Las columnas se crean en el mismo orden en el que se colocan en la instrucción SQL.
Posteriormente a su creación podemos añadir columnas nuevas.
Arrancamos con la llamada a éste procedimiento:
CargaGrid(Conexion, _
Adaptador, _
Tabla, _
CType(DataGrid, DataGridView), _
"SELECT Cod AS Código, Den AS Denominación, Impo, Tipo, Cuota FROM Servicios ")
En el que podemos ver la instrucción SQL
"SELECT Cod AS Código, Den AS Denominación, Impo, Tipo, Cuota FROM Servicios "
El procedimiento en cuestión es el que sigue:
Public Sub CargaGrid(ByVal Conexion As MySql.Data.MySqlClient.MySqlConnection, _
ByRef Adaptador As MySql.Data.MySqlClient.MySqlDataAdapter, _
ByRef Tabla As System.Data.DataTable, _
ByRef DataGrid As DataGridView, _
ByVal CadenaSql As String)
Dim ComandoActualizar As MySql.Data.MySqlClient.MySqlCommandBuilder
' DataGrid.Rows.Clear() si está enlazado no se puede
Tabla.Rows.Clear()
Try
' Crear un nuevo adaptador de datos
Adaptador = New MySql.Data.MySqlClient.MySqlDataAdapter(CadenaSql, Conexion)
' Crear un 'commandbuilder' que genere el SQL Update/Insert/Delete
' el comando, no puede cambiarse de sitio pues captura datos de la
' operación anterior del adaptador.
ComandoActualizar = New MySql.Data.MySqlClient.MySqlCommandBuilder(Adaptador)
' Llenar la tabla con los datos y enlazarla con DataSource
Adaptador.Fill(Tabla)
DataGrid.DataSource = Tabla
Catch ex As MySql.Data.MySqlClient.MySqlException
MsgBox(ex.Message, MsgBoxStyle.Information)
End Try
End Sub
En este procedimiento ya se queda enlazado el DataGrid a la tabla.
DataGrid.DataSource = Tabla
Antes que eso hemos llenado la tabla con
Adaptador.Fill(Tabla)
Que arranca a partir de
Adaptador = New MySql.Data.MySqlClient.MySqlDataAdapter(CadenaSql, Conexion)
Síguenos en: Facebook Sobre aulaClic Política de Cookies