mis dudas con Datagridview

29/11/2006 - 12:18 por Consuelo | Informe spam
Hola,
Sigo peleándome con el DataGridView para conseguir un Autofiltro... y ahora
estoy bloqueada en un punto que posiblemente sea fácil de superar.
Necesito poder añadir una Row (dónde poner los ComboBox...) pero como mi
control está enlazado a datos, no me lo permite.
Mi duda concreta es : ¿Existe alguna manera de "desconectar" el DataGridView
de la base de datos temporalmente, pero manteniendo los datos, que me
permita añadir filas o lo que quiera, y poder después volver a conectarlo
(evidentemente perdiendo las filas añadidas durante la desconexión)?
He hecho alguna prueba pero o no me permitía añadir filas, o no me mantenía
los datos...
Estoy convencida de que debe ser fácil y que posiblemente lo tenga delante
de mis ojos, pero como suele suceder algunas veces, no vemos lo más
evidente.

Gracias

Consuelo

Preguntas similare

Leer las respuestas

#1 Diego Cofré
29/11/2006 - 15:31 | Informe spam
Consuelo:
Lo mas práctico me parece, sería añadir filas al DataTable al cual el
DataGridView está enlazado.
Saludos

Lic. Diego Cofré
Desarrollador
EWAVE GROUP S.A
www.e-wavegroup.com
Respuesta Responder a este mensaje
#2 Consuelo
29/11/2006 - 16:03 | Informe spam
Tal vez no comprenda bien lo que me sugieres, pero creo que no es lo más
practico en mi caso, pues no quiero añadir ningún dato a la base de datos.
Únicamente quiero mostrar una fila más al principio de la grid en donde
poner una serie de ComboBox que me servirán para definir el filtro sobre los
datos que se mostraran. (un filtro programado por mí, no el que pueda
ofrecer el acceso a datos, por lo que no importa si no está enlazado a
datos)

En el fondo, lo que estoy buscando es cómo llenar una DataGridView
enlazándola a la base de datos y después romper este enlace y poder trabajar
con la DataGridView en modo sin enlazar pero manteniendo los datos.

(También me serviría encontrar la manera de poder añadir controles en una
segunda línea de cabecera (o en la parte inferior de una línea de cabecera
de doble altura) para así poder colocar mis ComboBoxes del filtro sin
afectar para nada a la zona de datos, pero me temo que esto no debe ser
sencillo... ¿O existe la manera de hacerlo? )

La otra opción que me queda es llenar "a mano" (celda a celda) los datos
sobre una DataGridView sin enlazar, pero ya que estoy aprendiendo a utilizar
este componente no me importa perder algo de tiempo buscando una manera más
"elegante" de hacerlo, pues seguro que por el camino aprendo otras cosas
también muy interesantes.

Saludos

Consuelo

PS: DataGridView ¿Es masculino o femenino? nunca sé si poner el o la...

"Diego Cofré" escribió en el mensaje
news:%23%23%
Consuelo:
Lo mas práctico me parece, sería añadir filas al DataTable al cual el
DataGridView está enlazado.
Saludos

Lic. Diego Cofré
Desarrollador
EWAVE GROUP S.A
www.e-wavegroup.com


Respuesta Responder a este mensaje
#3 Diego Cofré
30/11/2006 - 15:57 | Informe spam
Consuelo:
En realidad si quieres aplicar filtros a tu información quizás te convendría
hacer directamente las consultas a la base de datos con esos filtros
aplicados. En vez de ligar el datagridView a una tabla lo podrías ligar a
consultas donde directamente extraerías de la DB lo que necesitas, si tienes
tablas con muchos datos eso repercutiría en una mayor performance porque no
estarías transfiriendo toda la tabla a memoria. En ese caso lo que harías es
poner combos fuera del datagrid y de ahí extraer los parametros de la
consulta.

Para comprender mas en profundidad como trabajan los objetos de ADO.Net te
recomiendo el excelente libro de Francesco Balena "Programacion avanzada con
Visual Basic. Net". Creo que hay una version actualizada para VB 2005.

Saludos

Lic. Diego Cofré
Desarrollador
EWAVE GROUP S.A
www.e-wavegroup.com
Respuesta Responder a este mensaje
#4 Consuelo
30/11/2006 - 17:54 | Informe spam
Gracias por tu interés.
Supongo que no me he expresado bien, o no he dado toda la información de lo
que necesito.
En realidad estoy haciendo un componente heredado de DataGridView a quien
añado las funcionalidades que necesito para incluirlo en otra aplicación
(que será la versión mejorada en .NET de otra aplicación realizada en VB6 y
que se basa en un componente Grid con funciones añadidas... Aprovecharé gran
parte del diseño de la aplicación, pero no la implementación, que será casi
toda nueva).
Ahora estoy bloqueada por no poder añadir una línea desde el código en la
DataGridView si estoy en modo enlazado a datos. Simplemente con poder hacer
eso ya tendría el filtro listo pues el resto ya lo tengo y funciona, pero
sobre la primera línea ocultando los datos que están en esta :(
Esa nueva línea servirá sólo para la presentación en pantalla, si encontrara
otra forma de poder colocar un control (concretamente un ComboBox) entre la
línea de cabecera y la primera línea de datos, también me serviría para mis
propósitos.

Saludos

Consuelo



"Diego Cofré" escribió en el mensaje
news:%
Consuelo:
En realidad si quieres aplicar filtros a tu información quizás te
convendría
hacer directamente las consultas a la base de datos con esos filtros
aplicados. En vez de ligar el datagridView a una tabla lo podrías ligar a
consultas donde directamente extraerías de la DB lo que necesitas, si
tienes
tablas con muchos datos eso repercutiría en una mayor performance porque
no
estarías transfiriendo toda la tabla a memoria. En ese caso lo que harías
es
poner combos fuera del datagrid y de ahí extraer los parametros de la
consulta.

Para comprender mas en profundidad como trabajan los objetos de ADO.Net te
recomiendo el excelente libro de Francesco Balena "Programacion avanzada
con
Visual Basic. Net". Creo que hay una version actualizada para VB 2005.

Saludos

Lic. Diego Cofré
Desarrollador
EWAVE GROUP S.A
www.e-wavegroup.com


Respuesta Responder a este mensaje
#5 Diego Cofré
30/11/2006 - 21:05 | Informe spam
Consuelo:
El problema es que un dataGridView enlazado a un origen de datos no va a
mostrar filas que no se encuentren en él. Ademas no creo que haya forma de
definir tipos de controles para que el DataGridView muestre por fila y no
por columna.
Quizas tendrìas que desarrollar un userControl que contenga un datagridView
y los combos que necesitas para aplicarle filtros.

Saludos

Lic. Diego Cofré
Desarrollador
EWAVE GROUP S.A
www.e-wavegroup.com
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida