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 ;).
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
-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.
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 ^^.