Dataset v/s DataReader

12/07/2004 - 20:06 por Roberto Soto | Informe spam
Hola, tengo la opcion de utilizar dos esquemas de
extraccion de datos desde una base de datos Oracle 9i
utilizando ASP.NET, usando dataset y datareader. Ambos
funcionan, la pregunta es cuál de los dos en más eficiente
dentro del proposito de sólo querer leer una tabla para
cargar sus datos en un ComboBox.

Gracias

RASV - Roberto Soto

Preguntas similare

Leer las respuestas

#1 Jordi Maycas
12/07/2004 - 20:26 | Informe spam
teoricamente DataSet. Yo 'utilizo' (estoy en ello), el DataReader, para
poner el resultado de una consulta en una variable, y recuperarla a traves
de un while. Pero si lo que quieres es visualizar el resultado en un Grid,
pues es mejor el DataSet.

Por cierto, aprovechando, en otro hilo hice una consulta para recuperar la
informacion de una consulta en una variable, y tengo problemas para
declarar: dim xx as SqlDataReader, de hecho es que SqlDataReader no sabe lo
que es,


<script runat="server">

Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)

Dim dato As String

Dim boleano As Boolean

boleano = False

dato = Request.QueryString("name")

Dim dr As sqldataread

cnn = Server.CreateObject("ADODB.Connection")

rst = Server.CreateObject("ADODB.RecordSet")

cnn.Open("amigos")

sqltext = "select nombre,apellidos from Table1"

rst.Open(sqltext, cnn, 3, 3)

dr = rst.ExecuteReader

While dr.Read()

Response.Write(dr.Item("nombre".ToString))

End While

dr.Close()

rst.Dispose()

cnn.Close()

cnn.Dispose %>

End Sub

</script>


Alguna idea?

"Roberto Soto" escribió en el mensaje
news:2b28a01c4683a$f0d06e80$
Hola, tengo la opcion de utilizar dos esquemas de
extraccion de datos desde una base de datos Oracle 9i
utilizando ASP.NET, usando dataset y datareader. Ambos
funcionan, la pregunta es cuál de los dos en más eficiente
dentro del proposito de sólo querer leer una tabla para
cargar sus datos en un ComboBox.

Gracias

RASV - Roberto Soto
Respuesta Responder a este mensaje
#2 Sergio Florez M.
12/07/2004 - 20:44 | Informe spam
Pensando estrictamente en rendimiento es mejor el DataReader. De hecho
cuando llenas un DataSet o un DataTable por medio de un DataAdapter este usa
internamente un DataReader, la diferencia es que usa los otros objetos para
persistir la información.


Sergio Florez M.
¡¡El que persevera insiste!!
Medellín, Colombia
"Roberto Soto" escribió en el mensaje
news:2b28a01c4683a$f0d06e80$
Hola, tengo la opcion de utilizar dos esquemas de
extraccion de datos desde una base de datos Oracle 9i
utilizando ASP.NET, usando dataset y datareader. Ambos
funcionan, la pregunta es cuál de los dos en más eficiente
dentro del proposito de sólo querer leer una tabla para
cargar sus datos en un ComboBox.

Gracias

RASV - Roberto Soto
Respuesta Responder a este mensaje
#3 Roberto Soto
12/07/2004 - 20:53 | Informe spam
Me parece extraña la asignacion que haces
dr = rst.ExecuteReader

cuando lo que guardas en rst es el resultado mismo de la
consulta en forma de recordset, de modo que solo basta
recorrer éste a traves de un ciclo quedando asi:

While rst.eof

Response.Write(rst.fields("campo"))
rst.movenext
End While


Las otras opciones son, las que estoy comparando:
'El objeto comando se declara y configura con las
opciones de ejecucion
oCmd = New System.Data.OracleClient.OracleCommand()
With oCmd
.Connection = oConn
.Parameters.Clear()
.Parameters.Add("io_cursor",
Data.OracleClient.OracleType.Cursor).Direction =
Data.ParameterDirection.Output
End With

Dim SQL As String = "begin
pkg_general.get_all_procesos(:io_cursor);end;"
oCmd.CommandText = SQL
'******************* 1 opcion
'Se ejecuta la consulta a traves del objeto
comando utilizando la conexion oConn
Dim oDyn As
System.Data.OracleClient.OracleDataReader =
oCmd.ExecuteReader()

CB_Sistema.DataValueField = "ID_PROCESO"
CB_Sistema.DataTextField = "NOMBRE_PROCESO"
CB_Sistema.DataSource = oDyn
CB_Sistema.DataBind()
'****************** 2 opcion
' Declara el DATASET Y DATAADAPTER que almacenara
los datos(recordset) que devuelve la consulta a la base
Dim DS As New DataSet()
Dim DA As New OracleClient.OracleDataAdapter(oCmd)

'Carga datos en DATASET
DA.Fill(DS, "SCI_C_PROCESO")

CB_ZAdm.DataValueField = "ID_PROCESO"
CB_ZAdm.DataTextField = "NOMBRE_PROCESO"
CB_ZAdm.DataSource = DS.Tables("SCI_C_PROCESO")
CB_ZAdm.DataBind()

Ambas funcionan, la cuestione s saber tecnicamente cual es
mas eficiente. Te las adjunto para que te sirvan de
ejemplo, ambas cargan el resultado en combobox

Saludos
RASV
teoricamente DataSet. Yo 'utilizo' (estoy en ello), el


DataReader, para
poner el resultado de una consulta en una variable, y


recuperarla a traves
de un while. Pero si lo que quieres es visualizar el


resultado en un Grid,
pues es mejor el DataSet.

Por cierto, aprovechando, en otro hilo hice una consulta


para recuperar la
informacion de una consulta en una variable, y tengo


problemas para
declarar: dim xx as SqlDataReader, de hecho es que


SqlDataReader no sabe lo
que es,


<script runat="server">

Sub Page_Load(ByVal sender As Object, ByVal e As


System.EventArgs)

Dim dato As String

Dim boleano As Boolean

boleano = False

dato = Request.QueryString("name")

Dim dr As sqldataread

cnn = Server.CreateObject("ADODB.Connection")

rst = Server.CreateObject("ADODB.RecordSet")

cnn.Open("amigos")

sqltext = "select nombre,apellidos from Table1"

rst.Open(sqltext, cnn, 3, 3)

dr = rst.ExecuteReader

While dr.Read()

Response.Write(dr.Item("nombre".ToString))

End While

dr.Close()

rst.Dispose()

cnn.Close()

cnn.Dispose %>

End Sub

</script>


Alguna idea?

"Roberto Soto" escribió en el mensaje
news:2b28a01c4683a$f0d06e80$
Hola, tengo la opcion de utilizar dos esquemas de
extraccion de datos desde una base de datos Oracle 9i
utilizando ASP.NET, usando dataset y datareader. Ambos
funcionan, la pregunta es cuál de los dos en más eficiente
dentro del proposito de sólo querer leer una tabla para
cargar sus datos en un ComboBox.

Gracias

RASV - Roberto Soto


.

Respuesta Responder a este mensaje
#4 Roberto Soto
12/07/2004 - 21:00 | Informe spam
Aqui tienes doc para ver como manipular el datareader
http://msdn.microsoft.com/library/default.asp?
url=/library/en-
us/cpref/html/frlrfsystemdatasqlclientsqldatareaderclassclo
setopic.asp

Saludos
RASV


teoricamente DataSet. Yo 'utilizo' (estoy en ello), el


DataReader, para
poner el resultado de una consulta en una variable, y


recuperarla a traves
de un while. Pero si lo que quieres es visualizar el


resultado en un Grid,
pues es mejor el DataSet.

Por cierto, aprovechando, en otro hilo hice una consulta


para recuperar la
informacion de una consulta en una variable, y tengo


problemas para
declarar: dim xx as SqlDataReader, de hecho es que


SqlDataReader no sabe lo
que es,


<script runat="server">

Sub Page_Load(ByVal sender As Object, ByVal e As


System.EventArgs)

Dim dato As String

Dim boleano As Boolean

boleano = False

dato = Request.QueryString("name")

Dim dr As sqldataread

cnn = Server.CreateObject("ADODB.Connection")

rst = Server.CreateObject("ADODB.RecordSet")

cnn.Open("amigos")

sqltext = "select nombre,apellidos from Table1"

rst.Open(sqltext, cnn, 3, 3)

dr = rst.ExecuteReader

While dr.Read()

Response.Write(dr.Item("nombre".ToString))

End While

dr.Close()

rst.Dispose()

cnn.Close()

cnn.Dispose %>

End Sub

</script>


Alguna idea?

"Roberto Soto" escribió en el mensaje
news:2b28a01c4683a$f0d06e80$
Hola, tengo la opcion de utilizar dos esquemas de
extraccion de datos desde una base de datos Oracle 9i
utilizando ASP.NET, usando dataset y datareader. Ambos
funcionan, la pregunta es cuál de los dos en más eficiente
dentro del proposito de sólo querer leer una tabla para
cargar sus datos en un ComboBox.

Gracias

RASV - Roberto Soto


.

Respuesta Responder a este mensaje
#5 Anonimo
12/07/2004 - 21:06 | Informe spam
mmm... si , me parece mas interesante tu respuesta. Las
conclusiones a las que habia llegado es tambien que el
datareader es mas eficiente, ya que como dices este lee
solamente en forma simple, en cambio el dataset considera
relaciones entre tablas y claves que hace mas compleja su
constitucion y llenado, y esto a la verz para tener en
memoria una "mini base" donde manipular los datos

Gracias
Saludos

RASV
Pensando estrictamente en rendimiento es mejor el


DataReader. De hecho
cuando llenas un DataSet o un DataTable por medio de un


DataAdapter este usa
internamente un DataReader, la diferencia es que usa los


otros objetos para
persistir la información.


Sergio Florez M.
¡¡El que persevera insiste!!
Medellín, Colombia
"Roberto Soto" escribió en el mensaje
news:2b28a01c4683a$f0d06e80$
Hola, tengo la opcion de utilizar dos esquemas de
extraccion de datos desde una base de datos Oracle 9i
utilizando ASP.NET, usando dataset y datareader. Ambos
funcionan, la pregunta es cuál de los dos en más eficiente
dentro del proposito de sólo querer leer una tabla para
cargar sus datos en un ComboBox.

Gracias

RASV - Roberto Soto


.

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida