Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Problemas de tiempo usando Datasets y SqlDataAdapter

Iniciado por seth444, 12 de Mayo de 2008, 09:38:23 AM

« anterior - próximo »

seth444

Hola quería comentaros ciertos problemillas de tiempo que tengo utilizando las clases Dataset y SqlDataAdapter de ADO.NET.2.0.
La parte del programa implicada es esta:

      (1) DataSet ds = new DataSet();
      (2) SqlDataAdapter da = new SqlDataAdapter(Query, ConnectionString);
      (3) da.Fill(ds, "Materiales");

y lo que hace (por si alguien no lo ve), es obtener unos datos extraidos de la base de datos por medio de una query y una cadena de conexión en la línea (2) y rellenar (utilizando para esto un método llamado Fill de DataAdapter) una tabla llamada "Materiales" con esos datos en el Dataset en la línea (3).

Todo funciona perfectamente, mi problema es que aunque la tabla a rellenar esté vacía, le cuesta mucho tiempo ejecutar la linea (3) (1 seg aproximadamente). Esto es algo que no me puedo permitir porque en mi programa utilizo bastante esta forma de leer y guardar datos de la BD. Son muchos segundos los que pierde mi programa en una parte de mi código que no he hecho yo, de esta forma me gustaría mucho encontrar una alternativa.

Quizá mi problema es que no termino de entender estas dos clases (Dataset y SqlDataAdapter).

¿Alguien me puede dar una solución a mi problema de tiempo?.

Un saludo ;).
lt;< Omnia in gloriam Dei facite (1Co 10, 31) >>

Vicente

Una duda, ¿cómo has medido el segundo que te tarda la línea 3? En mi proyecto actual usamos datasets por todos los lados y van como  un tiro...

Un saludo!

Vicente

xxpleyxx

-Usa DataReaders en el caso que solo sea lectura de datos.
   
Ejemplo:

Dim cmd As New SqlCommand("SELECT * FROM Tabla", cn)
  Dim dreader As SqlDataReader
  Dim dtable As New DataTable
  dreader = cmd.ExecuteReader
  dtable.Load(dreader, LoadOption.OverwriteChanges)
  DataGridView1.DataSource = dtable


-Si la BDD esta hecha en access, migrala a SQL Server o cualquier otro.

Asi a priori son las mejoras que le veo sin ver el codigo.
He encontrado algo que creía perdido...
*¿El que?
-La fe para seguir buscando...

Mi blog de juegos independientes

seth444

Gracias chicos,

Ya he encontrado el problema. Resulta que todas estas operaciones las realizaba desde un .dll. Ese dll lo probaba con un proyecto de tipo Test desde el visual y curiosamente, estos proyectos son muuuuuuuuuuucho más lentos de ejecutarse, no se pq, pero he probado ejecutar la dll desde un proyecto de otro tipo y he tenido un calculo de tiempos más que aceptable.

Gracias por todo y perdonar las molestias.

Recordad, nunca useis Test si quereis probar la velocidad de vuestras dll's.

Un abrazo ^^.
lt;< Omnia in gloriam Dei facite (1Co 10, 31) >>






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.