Visual Basic.NET - DataSet o sqlDataReader??

 
Vista:

DataSet o sqlDataReader??

Publicado por Laura (8 intervenciones) el 03/06/2007 15:55:57
Hola! Estoy comenzando con Visual Basic.Net y conexiones con SQL y tengo una duda que espero alguien sepa responderme.
Yo tengo 2 ejemplos de conexiones con la base de datos, y los dos son distintos... en uno usan una función EjecutarConsulta que es SQLData Reader y en la otra es Dataset....
Ejemplo:
En una aparece así:

Public Shared Function EjecutarConsulta(ByVal cmd As SqlCommand) As SqlDataReader

Y en la otra:

Public Shared Function EjecutarConsulta(ByVal cmd As SqlCommand) As DataSet

Cual es la diferencia en eso??? Cuando tendría que usar una o la otra??? O es lo mismo???
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:DataSet o sqlDataReader??

Publicado por Alex A. Salamanca E. (15 intervenciones) el 04/06/2007 03:21:02
Hola Laura:

Con respecto a que es mejor o que es peor, no te voy a decir con exactitud, ya que depende del caso y hay dos situaciones en las que se usa uno u otro:

Por ejemplo cuando usas un datareader estás leyendo datos de la bd. de forma secuencial sin dejar de estar conectado del servidor de bd., es decir, mientras estas leyendo esa información aun sigues con una conexión directa al servidor de base de datos implicando recursos de memoria del server, por lo tanto depende del caso, de cuantas filas tenga tu datareader y de la forma que lo manejes, ya que puedes necesitar hacer algo con esa información antes de enviarla a tu aplicación o en vista al usuario, y una ves que ya hayas hecho con tu datareader lo que deseabas deberas desconectarte.

En el caso del dataset, este es una memoria virtual donde se almacenan los datos traidos de la base de datos y esto ocurre más o menos asi, el dataset también es llenado por un datareader internamente, es transparente para el programador, pero con la diferencia de que al llenar el dataset mediante un dataadapter.fill(dataset), este abre solito una conexión y llena el dataset y cierra solito esa conexión y no ocupa más recursos del servidor que los que necesita y los datos quedan almacenados en el dataset en el lado del cliente a diferencia del datareader que quedan almacenados en el lado del servidor y se van trayendo al cliente a medida que los va leyendo.

Por lo tanto como veras cada uno tiene sus ventajas, aunque al parecer a mi gusto es mejor trabajar con dataset, ya que suelta más luego al servidor de base de datos y al tener los datos en el lado del cliente puedes hacer allí lo que quieras con ellos, solo que gastando memoria del lado del cliente, por lo tanto hay que sopesar ambas alternativas.


Saludos
Alex A. Salamanca E.
Ingeniero (e) Computación e informática
Concepción - Chile
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:DataSet o sqlDataReader??

Publicado por Laura (8 intervenciones) el 04/06/2007 23:08:06
Muchísimas Gracias! Me sirve de mucho tu respuesta! Ahora entiendo la diferencia, estaba un poco mareada con eso. Gracias por aclarar mis dudas.

Saludos
Laura.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar