Unidad 53. DataGrid (IV)





2    Objetos del tipo Columna.

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.

 

3    A partir de un objeto Tabla.

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)

Octubre-2010
Pág. 53.4

Atrás  Inicio  Adelante






Página inicial  Cursos Informática Gratuitos

Síguenos en:   Facebook       Sobre aulaClic            Política de Cookies