En este grupo En todos

Grupo de .NET y C



Datos en datagrid sin usar dataset?

Jorge A
Ingenieria telecomunicaciones universi...
Escrito por Jorge A Raigoza
el 12/06/2008

Buenos dias todos.

Hace un tiempo estoy trabajando en un programa que controla dos bases de datos, el problema es que una de esas dos bases tiene 200. 000 records y cuando quiero traerlos todos al datagridview me toca primero mandarlos al dataset y luego al datagridview y este proceso se hace muy lento y ademas muchas veces el programa llega a puntos criticos por el uso de la memoria RAM, me preguntaba si hay alguna forma para mandar los datos al datagridview sin necesidad de mandarlo al dataset?

Por su ayuda muchas gracias.

Carlos Hidalgo
Ingeniería de sistemas universidad pri...
Escrito por Carlos Hidalgo
el 21/06/2008

Hola Jorge, bueno yo he hecho pruebas con respecto a la performance de los objetos DataSet, DataTable y BindingList. Con 65000 registros el más rapido es BindingList(Tiempo: 2seg. ), DataTable(Tiempo: 5seg) y DataSet(Tiempo: 9-11 seg.)... Espero que esta información te sirva como para que puedas elegir con que tipo de objetos trabajar... Está demás decirte que yo te recomendaría trabajar con bindingList.

Suerte...

Alfonso Gonzalez Morales
Tis universidad panamericana
Escrito por Alfonso Gonzalez Morales
el 24/06/2008
Pues no se en que cambie las cosas la cantidad de datos que manejas pero yo lo uso directo con datatable, solo tienes que crear tu conexion, tu dataadapter, luego abres la conexion, seleccionas las columnas que quieras si es que nno necesitas todas, aplicas dataadapter. Fill (undatatable) y ahora solo lo montas al datagrid, datagridviewX. Source = datatable datagridviewX. Refresh y listo
Ricardo Ruano
Estudiante-ingeniero universidad tecni...
Escrito por Ricardo Ruano
el 26/06/2008

Bueno puedes usar un datatable, creo q maneja super bien.... No he tenido lios con este

Elmer John Pérez Espinoza
Ing. universidad tecnologica del peru ...
Escrito por Elmer John Pérez Espinoza
el 27/06/2008

Este es un problema muy común en el acceso a los datos al porraso, primeramente el punto clave es para que traer todos los datos si lo puedes hacer por partes, me comentas que tu aplicación accede a dos base de Datos, las base de Datos esta en Oracle o SQL server 2005, si es en SQL 2005 podemos particionar las tablas para una mayor performace, te recomendaria un DataSet pero debemos ser cuidadosos al utilizarlo un mal uso nos conyeva a problemas de performance y utliza vistas , procedimientos almacenado y sobre todo crear bien tus indices en tu base de Datos.

La Utilizacion de un DataSet a esa cantidad de Datos es sumante importante en hacer una estrategia de como los usuario van a manipular esos datos una vez vizualizados en el datagridview, te recomiendo que utilices thread al momento de jalar esos datos de la Base de Datos.

PD.
He realizado una carga de 1 Millón de registros en un DataSet pero de manera particionada.

Jorge A Raigoza
Ingenieria telecomunicaciones universi...
Escrito por Jorge A Raigoza
el 30/06/2008

Buenas noches Elmer, tu idea de particionar los datos es muy buena, la cuestion es q yo lo estoy haciendo solo que me toca traer muchos datos al ser particionados, en este momento mi programa esta rapido ya q lo he limitado para que mis datos traidos sean muy especificos la cuestion es q he visto en muchos programas que traen "muchos datos" y de una manera muy rapida, pero noto q lo que hace es traer por ejemplo 20 records y cuando el usuario baja a ver los demas records en el datagrid trae mas datos a medida q va avanzando, me gustaria mucho si me pudieran dar una idea de como hacer esto, ya que nos funcionaria para muchas cosas y hacer nuestras aplicaciones cada dia mejor.

Por su ayuda gracias.

Jorge A Raigoza
Ingenieria telecomunicaciones universi...
Escrito por Jorge A Raigoza
el 30/06/2008

Gracias Carlos por tu informacion, apenas pueda hare unas pruebas y les informo.

Escrito por Irving Tristan Echevarria
el 27/08/2008

Hola xD interesante carlos, pero porke no utilizas Generics es bastante eficienmte