SlideShare una empresa de Scribd logo
1 de 3
Descargar para leer sin conexión
Unidad I – Aplicación de controles



1.2 CONTROLES DE ACCESO A DATOS

a) DataGridView (Clase)
El control DataGridView proporciona una tabla personalizable para mostrar datos. La clase DataGridView
permite personalizar celdas, filas, columnas y bordes mediante propiedades como DefaultCellStyle,
ColumnHeadersDefaultCellStyle, CellBorderStyle y GridColor.

Puede utilizar un control DataGridView para mostrar datos con o sin un origen de datos subyacente. Sin
especificar un origen de datos, puede crear las columnas y filas que contendrán los datos y agregarlas
directamente a DataGridView. Como alternativa, puede establecer las propiedades DataSource y DataMember
para enlazar el control DataGridView a un origen de datos y llenarlo de datos automáticamente.

Al trabajar con grandes cantidades de datos, puede establecer la propiedad VirtualMode en true para mostrar
un subconjunto de los datos disponibles. El modo virtual requiere la implementación de una caché de datos a
partir de la cual se llenará el control DataGridView.

Aunque el control DataGridView reemplaza y agrega funcionalidad al control DataGrid de las versiones
anteriores, se conserva el control DataGrid por compatibilidad con las versiones anteriores y para uso futuro, si
así se elige.

  Nota:

El control DataGridView hereda las propiedades ContextMenu y ContextMenuStrip de Control, pero sólo
admite la propiedad ContextMenuStrip. El uso de la propiedad ContextMenu con el control DataGridView
no tiene ningún efecto.



b) DataGrid (Clase)
Muestra datos de ADO.NET en una cuadrícula desplazable. El control DataGridView reemplaza y agrega
funcionalidad al control DataGrid; sin embargo, el control DataGrid se conserva para compatibilidad con
versiones anteriores y para uso futuro, si así se elige.

System.Windows.Forms.DataGrid muestra vínculos de tipo Web a las tablas secundarias. Para desplazarse a
la tabla secundaria, haga clic en un vínculo. Cuando se muestra una tabla secundaria, aparece en el título un
botón de retroceso en el que se puede hacer clic para volver a la tabla primaria. Los datos de las filas primarias
se muestran debajo del título y encima de los encabezados de columna. Para ocultar la información de las filas
primarias, haga clic en el botón situado a la derecha del botón de retroceso.

Para mostrar una tabla en System.Windows.Forms.DataGrid en tiempo de ejecución, utilice el método
SetDataBinding para establecer las propiedades DataSource y DataMember en un origen de datos válido. Son
válidos los siguientes orígenes de datos:

    •   DataTable.
    •   DataView.
    •   DataSet.
    •   DataViewManager.
    •   Matriz unidimensional
    •   Cualquier componente que implemente la interfaz IListSource
    •   Cualquier componente que implemente la interfaz IList

Se puede crear una cuadrícula que permita a los usuarios editar los datos pero que les impida agregar nuevas
filas; para ello, se debe utilizar DataView como origen de datos y establecer el valor de la propiedad AllowNew
en false.


L.I. José Raymundo Ceja Vázquez                                                                                1
Unidad I – Aplicación de controles



Los objetos BindingManagerBase administran asimismo los orígenes de datos. Para cada tabla de un origen de
datos, se puede devolver un objeto BindingManagerBase desde BindingContext del formulario. Por ejemplo,
se puede determinar el número de filas de un origen de datos devolviendo la propiedad Count del objeto
BindingManagerBase asociado.

Para validar los datos, utilice los objetos subyacentes que representan los datos y sus eventos. Por ejemplo, si
los datos proceden de un objeto DataTable de DataSet, utilice los eventos ColumnChanging y RowChanging.

  Nota:

Dado que es posible personalizar el número de columnas (agregando o eliminando miembros de
GridColumnStylesCollection) y que las filas pueden ordenarse por columna, no es posible garantizar que los
valores de las propiedades RowNumber y ColumnNumber se correspondan con los índices de DataRow y
DataColumn en DataTable. Por este motivo, se ha de evitar el uso de dichas propiedades en el evento
Validating para validar los datos.

Para determinar la celda seleccionada, utilice la propiedad CurrentCell. Para cambiar el valor de cualquier
celda, utilice la propiedad Item, que puede adoptar los índices de fila y columna de la celda o un solo objeto
DataGridCell. Supervise el evento CurrentCellChanged para detectar cuándo el usuario selecciona otra celda.

Para determinar en qué parte del control ha hecho clic el usuario, utilice el método HitTest en el evento
MouseDown. El método HitTest devuelve un objeto DataGrid.HitTestInfo, que contiene la fila y la columna de
un área en la que se ha hecho clic.

Para administrar la apariencia del control en tiempo de ejecución, existen varias propiedades que permiten
establecer los atributos de color y título, incluidas las propiedades CaptionForeColor, CaptionBackColor,
CaptionFont, etc.

La apariencia de la cuadrícula o cuadrículas mostradas puede modificarse también creando objetos
DataGridTableStyle y agregándolos a la colección GridTableStylesCollection, a la que se puede obtener acceso
mediante la propiedad TableStyles. Por ejemplo, si la propiedad DataSource está establecida en una clase
DataSet que contiene tres objetos DataTable, se pueden agregar tres objetos DataGridTableStyle a la
colección, uno por cada tabla. Para sincronizar cada objeto DataGridTableStyle con un objeto DataTable,
establezca la propiedad MappingName de DataGridTableStyle en TableName de DataTable.

Para crear una vista personalizada de una tabla, hay que crear una instancia de una clase
DataGridTextBoxColumn o DataGridBoolColumn y agregar el objeto a la colección GridTableStylesCollection,
a la que se obtiene acceso a través de la propiedad TableStyles. Ambas clases se heredan de
DataGridColumnStyle. Para cada estilo de columna, hay que establecer la propiedad MappingName en
ColumnName de una columna que se desee mostrar en la cuadrícula. Para ocultar una columna, establezca su
propiedad MappingName en un valor que no sea una propiedad ColumnName válida.

Para aplicar formato al texto de una columna, hay que establecer la propiedad Format de
DataGridTextBoxColumn en uno de los valores de Cadenas de formato de fecha y hora o Cadenas con
formato numérico estándar.

Para enlazar DataGrid a una matriz de objetos con establecimiento inflexible de tipos, el tipo de objeto debe
contener propiedades públicas. Para crear un control DataGridTableStyle que muestre la matriz, establezca la
propiedad DataGridTableStyle.MappingName en typename[] donde el nombre del tipo de objeto reemplaza a
typename. Observe también que la propiedad MappingName distingue entre mayúsculas y minúsculas; el
nombre de tipo debe coincidir exactamente.




L.I. José Raymundo Ceja Vázquez                                                                              2
Unidad I – Aplicación de controles



También es posible enlazar DataGrid a ArrayList. Una característica de ArrayList es que puede contener
objetos de varios tipos, pero DataGrid sólo puede enlazarse a dicha lista si todos los elementos de la lista son
del mismo tipo que el primero. Esto significa que todos los objetos deben ser del mismo tipo o que deben
heredarse de la misma clase que el primer elemento de la lista. Por ejemplo, si el primer elemento de una lista
es Control, el segundo elemento podría ser TextBox (que se hereda de Control). En cambio, si el primer
elemento es TextBox, el segundo objeto no puede ser Control. Además, ArrayList debe contener elementos
en el momento de enlazarse. Una lista ArrayList vacía dará como resultado una cuadrícula vacía. Además, los
objetos en el control ArrayList deben contener propiedades públicas. Para enlazarse a ArrayList, hay que
establecer la propiedad MappingName de DataGridTableStyle en "ArrayList" (el nombre de tipo).

Para cada DataGridTableStyle, se pueden establecer los atributos de color y título que reemplazan los valores
del control System.Windows.Forms.DataGrid. Sin embargo, si no se establecen dichas propiedades, se
utilizan los valores del control de manera predeterminada. Las propiedades DataGridTableStyle pueden
reemplazar las siguientes propiedades:

    •   AllowSorting
    •   AlternatingBackColor
    •   BackColor
    •   ColumnHeadersVisible
    •   ForeColor
    •   GridLineColor
    •   GridLineStyle
    •   HeaderBackColor
    •   HeaderFont
    •   HeaderForeColor
    •   LinkColor
    •   PreferredColumnWidth
    •   PreferredRowHeight
    •   ReadOnly
    •   RowHeadersVisible
    •   RowHeaderWidth
    •   SelectionBackColor
    •   SelectionForeColor

Para personalizar la apariencia de columnas individuales, agregue objetos DataGridColumnStyle a la
colección GridColumnStylesCollection, a la que se obtiene acceso mediante la propiedad GridColumnStyles
de cada DataGridTableStyle. Para sincronizar cada objeto DataGridColumnStyle con un objeto DataColumn
en DataTable, establezca la propiedad MappingName en la propiedad ColumnName de un objeto
DataColumn. Al construir un objeto DataGridColumnStyle, también se puede establecer una cadena de
formato que especifica el modo en que se muestran los datos en la columna. Por ejemplo, se puede especificar
que la columna utilice un formato de fecha corta para mostrar las fechas que contiene la tabla.

  Nota:

El control DataGridView reemplaza y agrega funcionalidad al control DataGrid; sin embargo, el control
DataGrid se conserva para mantener la compatibilidad con versiones anteriores y para uso futuro, si así se
elige.




L.I. José Raymundo Ceja Vázquez                                                                              3

Más contenido relacionado

Similar a DataGrid y DataGridView controles

Active x data object ado.net
Active x data object ado.netActive x data object ado.net
Active x data object ado.netGissela Antohane
 
Vb net bd_2005_02
Vb net bd_2005_02Vb net bd_2005_02
Vb net bd_2005_02Paul Taco
 
Entrenamiento en Acceso a Datos con ASP.NET
Entrenamiento en Acceso a Datos con ASP.NETEntrenamiento en Acceso a Datos con ASP.NET
Entrenamiento en Acceso a Datos con ASP.NETHaaron Gonzalez
 
Control JTable con base de datos.pdf
Control JTable con base de datos.pdfControl JTable con base de datos.pdf
Control JTable con base de datos.pdfJhiZzelh T Cz
 
25880774 jtable-mantenimiento-de-datos-en-netbeans-tenemos
25880774 jtable-mantenimiento-de-datos-en-netbeans-tenemos25880774 jtable-mantenimiento-de-datos-en-netbeans-tenemos
25880774 jtable-mantenimiento-de-datos-en-netbeans-tenemossonia yamile ortega carrillo
 
Mantenimientodedatosennetbeans 091003154541-phpapp02
Mantenimientodedatosennetbeans 091003154541-phpapp02Mantenimientodedatosennetbeans 091003154541-phpapp02
Mantenimientodedatosennetbeans 091003154541-phpapp02chocolatito Chocolatito
 
Investigacion alter, create y integridad referencial
Investigacion alter, create y integridad referencialInvestigacion alter, create y integridad referencial
Investigacion alter, create y integridad referencial500y
 

Similar a DataGrid y DataGridView controles (20)

Base de datos
Base de datosBase de datos
Base de datos
 
Objeto SqlDataAdapter
Objeto SqlDataAdapterObjeto SqlDataAdapter
Objeto SqlDataAdapter
 
Objeto sql.data.adapter
Objeto sql.data.adapterObjeto sql.data.adapter
Objeto sql.data.adapter
 
Objeto sql.data table
Objeto sql.data tableObjeto sql.data table
Objeto sql.data table
 
Active x data object ado.net
Active x data object ado.netActive x data object ado.net
Active x data object ado.net
 
Vb net bd_2005_02
Vb net bd_2005_02Vb net bd_2005_02
Vb net bd_2005_02
 
ADO.NET
ADO.NETADO.NET
ADO.NET
 
Entrenamiento en Acceso a Datos con ASP.NET
Entrenamiento en Acceso a Datos con ASP.NETEntrenamiento en Acceso a Datos con ASP.NET
Entrenamiento en Acceso a Datos con ASP.NET
 
Control jtable
Control jtableControl jtable
Control jtable
 
Control JTable con base de datos.pdf
Control JTable con base de datos.pdfControl JTable con base de datos.pdf
Control JTable con base de datos.pdf
 
Universidad politecnica amazonica
Universidad politecnica amazonicaUniversidad politecnica amazonica
Universidad politecnica amazonica
 
Arreglos, Procedimientos y Funciones
Arreglos, Procedimientos y FuncionesArreglos, Procedimientos y Funciones
Arreglos, Procedimientos y Funciones
 
25880774 jtable-mantenimiento-de-datos-en-netbeans-tenemos
25880774 jtable-mantenimiento-de-datos-en-netbeans-tenemos25880774 jtable-mantenimiento-de-datos-en-netbeans-tenemos
25880774 jtable-mantenimiento-de-datos-en-netbeans-tenemos
 
Mantenimientodedatosennetbeans 091003154541-phpapp02
Mantenimientodedatosennetbeans 091003154541-phpapp02Mantenimientodedatosennetbeans 091003154541-phpapp02
Mantenimientodedatosennetbeans 091003154541-phpapp02
 
JAVA CON BASE DE DATOS
JAVA CON BASE DE DATOSJAVA CON BASE DE DATOS
JAVA CON BASE DE DATOS
 
Investigacion alter, create y integridad referencial
Investigacion alter, create y integridad referencialInvestigacion alter, create y integridad referencial
Investigacion alter, create y integridad referencial
 
Objeto sql.data reader
Objeto sql.data readerObjeto sql.data reader
Objeto sql.data reader
 
Control jtable con base de datos
Control jtable con base de datosControl jtable con base de datos
Control jtable con base de datos
 
Vistas (1)
Vistas (1)Vistas (1)
Vistas (1)
 
Diapositivas de jtable java
Diapositivas de jtable javaDiapositivas de jtable java
Diapositivas de jtable java
 

DataGrid y DataGridView controles

  • 1. Unidad I – Aplicación de controles 1.2 CONTROLES DE ACCESO A DATOS a) DataGridView (Clase) El control DataGridView proporciona una tabla personalizable para mostrar datos. La clase DataGridView permite personalizar celdas, filas, columnas y bordes mediante propiedades como DefaultCellStyle, ColumnHeadersDefaultCellStyle, CellBorderStyle y GridColor. Puede utilizar un control DataGridView para mostrar datos con o sin un origen de datos subyacente. Sin especificar un origen de datos, puede crear las columnas y filas que contendrán los datos y agregarlas directamente a DataGridView. Como alternativa, puede establecer las propiedades DataSource y DataMember para enlazar el control DataGridView a un origen de datos y llenarlo de datos automáticamente. Al trabajar con grandes cantidades de datos, puede establecer la propiedad VirtualMode en true para mostrar un subconjunto de los datos disponibles. El modo virtual requiere la implementación de una caché de datos a partir de la cual se llenará el control DataGridView. Aunque el control DataGridView reemplaza y agrega funcionalidad al control DataGrid de las versiones anteriores, se conserva el control DataGrid por compatibilidad con las versiones anteriores y para uso futuro, si así se elige. Nota: El control DataGridView hereda las propiedades ContextMenu y ContextMenuStrip de Control, pero sólo admite la propiedad ContextMenuStrip. El uso de la propiedad ContextMenu con el control DataGridView no tiene ningún efecto. b) DataGrid (Clase) Muestra datos de ADO.NET en una cuadrícula desplazable. El control DataGridView reemplaza y agrega funcionalidad al control DataGrid; sin embargo, el control DataGrid se conserva para compatibilidad con versiones anteriores y para uso futuro, si así se elige. System.Windows.Forms.DataGrid muestra vínculos de tipo Web a las tablas secundarias. Para desplazarse a la tabla secundaria, haga clic en un vínculo. Cuando se muestra una tabla secundaria, aparece en el título un botón de retroceso en el que se puede hacer clic para volver a la tabla primaria. Los datos de las filas primarias se muestran debajo del título y encima de los encabezados de columna. Para ocultar la información de las filas primarias, haga clic en el botón situado a la derecha del botón de retroceso. Para mostrar una tabla en System.Windows.Forms.DataGrid en tiempo de ejecución, utilice el método SetDataBinding para establecer las propiedades DataSource y DataMember en un origen de datos válido. Son válidos los siguientes orígenes de datos: • DataTable. • DataView. • DataSet. • DataViewManager. • Matriz unidimensional • Cualquier componente que implemente la interfaz IListSource • Cualquier componente que implemente la interfaz IList Se puede crear una cuadrícula que permita a los usuarios editar los datos pero que les impida agregar nuevas filas; para ello, se debe utilizar DataView como origen de datos y establecer el valor de la propiedad AllowNew en false. L.I. José Raymundo Ceja Vázquez 1
  • 2. Unidad I – Aplicación de controles Los objetos BindingManagerBase administran asimismo los orígenes de datos. Para cada tabla de un origen de datos, se puede devolver un objeto BindingManagerBase desde BindingContext del formulario. Por ejemplo, se puede determinar el número de filas de un origen de datos devolviendo la propiedad Count del objeto BindingManagerBase asociado. Para validar los datos, utilice los objetos subyacentes que representan los datos y sus eventos. Por ejemplo, si los datos proceden de un objeto DataTable de DataSet, utilice los eventos ColumnChanging y RowChanging. Nota: Dado que es posible personalizar el número de columnas (agregando o eliminando miembros de GridColumnStylesCollection) y que las filas pueden ordenarse por columna, no es posible garantizar que los valores de las propiedades RowNumber y ColumnNumber se correspondan con los índices de DataRow y DataColumn en DataTable. Por este motivo, se ha de evitar el uso de dichas propiedades en el evento Validating para validar los datos. Para determinar la celda seleccionada, utilice la propiedad CurrentCell. Para cambiar el valor de cualquier celda, utilice la propiedad Item, que puede adoptar los índices de fila y columna de la celda o un solo objeto DataGridCell. Supervise el evento CurrentCellChanged para detectar cuándo el usuario selecciona otra celda. Para determinar en qué parte del control ha hecho clic el usuario, utilice el método HitTest en el evento MouseDown. El método HitTest devuelve un objeto DataGrid.HitTestInfo, que contiene la fila y la columna de un área en la que se ha hecho clic. Para administrar la apariencia del control en tiempo de ejecución, existen varias propiedades que permiten establecer los atributos de color y título, incluidas las propiedades CaptionForeColor, CaptionBackColor, CaptionFont, etc. La apariencia de la cuadrícula o cuadrículas mostradas puede modificarse también creando objetos DataGridTableStyle y agregándolos a la colección GridTableStylesCollection, a la que se puede obtener acceso mediante la propiedad TableStyles. Por ejemplo, si la propiedad DataSource está establecida en una clase DataSet que contiene tres objetos DataTable, se pueden agregar tres objetos DataGridTableStyle a la colección, uno por cada tabla. Para sincronizar cada objeto DataGridTableStyle con un objeto DataTable, establezca la propiedad MappingName de DataGridTableStyle en TableName de DataTable. Para crear una vista personalizada de una tabla, hay que crear una instancia de una clase DataGridTextBoxColumn o DataGridBoolColumn y agregar el objeto a la colección GridTableStylesCollection, a la que se obtiene acceso a través de la propiedad TableStyles. Ambas clases se heredan de DataGridColumnStyle. Para cada estilo de columna, hay que establecer la propiedad MappingName en ColumnName de una columna que se desee mostrar en la cuadrícula. Para ocultar una columna, establezca su propiedad MappingName en un valor que no sea una propiedad ColumnName válida. Para aplicar formato al texto de una columna, hay que establecer la propiedad Format de DataGridTextBoxColumn en uno de los valores de Cadenas de formato de fecha y hora o Cadenas con formato numérico estándar. Para enlazar DataGrid a una matriz de objetos con establecimiento inflexible de tipos, el tipo de objeto debe contener propiedades públicas. Para crear un control DataGridTableStyle que muestre la matriz, establezca la propiedad DataGridTableStyle.MappingName en typename[] donde el nombre del tipo de objeto reemplaza a typename. Observe también que la propiedad MappingName distingue entre mayúsculas y minúsculas; el nombre de tipo debe coincidir exactamente. L.I. José Raymundo Ceja Vázquez 2
  • 3. Unidad I – Aplicación de controles También es posible enlazar DataGrid a ArrayList. Una característica de ArrayList es que puede contener objetos de varios tipos, pero DataGrid sólo puede enlazarse a dicha lista si todos los elementos de la lista son del mismo tipo que el primero. Esto significa que todos los objetos deben ser del mismo tipo o que deben heredarse de la misma clase que el primer elemento de la lista. Por ejemplo, si el primer elemento de una lista es Control, el segundo elemento podría ser TextBox (que se hereda de Control). En cambio, si el primer elemento es TextBox, el segundo objeto no puede ser Control. Además, ArrayList debe contener elementos en el momento de enlazarse. Una lista ArrayList vacía dará como resultado una cuadrícula vacía. Además, los objetos en el control ArrayList deben contener propiedades públicas. Para enlazarse a ArrayList, hay que establecer la propiedad MappingName de DataGridTableStyle en "ArrayList" (el nombre de tipo). Para cada DataGridTableStyle, se pueden establecer los atributos de color y título que reemplazan los valores del control System.Windows.Forms.DataGrid. Sin embargo, si no se establecen dichas propiedades, se utilizan los valores del control de manera predeterminada. Las propiedades DataGridTableStyle pueden reemplazar las siguientes propiedades: • AllowSorting • AlternatingBackColor • BackColor • ColumnHeadersVisible • ForeColor • GridLineColor • GridLineStyle • HeaderBackColor • HeaderFont • HeaderForeColor • LinkColor • PreferredColumnWidth • PreferredRowHeight • ReadOnly • RowHeadersVisible • RowHeaderWidth • SelectionBackColor • SelectionForeColor Para personalizar la apariencia de columnas individuales, agregue objetos DataGridColumnStyle a la colección GridColumnStylesCollection, a la que se obtiene acceso mediante la propiedad GridColumnStyles de cada DataGridTableStyle. Para sincronizar cada objeto DataGridColumnStyle con un objeto DataColumn en DataTable, establezca la propiedad MappingName en la propiedad ColumnName de un objeto DataColumn. Al construir un objeto DataGridColumnStyle, también se puede establecer una cadena de formato que especifica el modo en que se muestran los datos en la columna. Por ejemplo, se puede especificar que la columna utilice un formato de fecha corta para mostrar las fechas que contiene la tabla. Nota: El control DataGridView reemplaza y agrega funcionalidad al control DataGrid; sin embargo, el control DataGrid se conserva para mantener la compatibilidad con versiones anteriores y para uso futuro, si así se elige. L.I. José Raymundo Ceja Vázquez 3