las clases datareader
TRANSCRIPT
-
7/25/2019 Las Clases DataReader
1/3
Las clases DataReaderUn objeto DataReader permite la navegacin hacia delante y de slo lectura, de los registros
devueltos
por una consulta. Es lo ms parecido al objeto Recordset de ADO de tipo read only!or"ard only.
A di!erencia del resto de objetos, #ue siguen un es#uema desconectado de manipulacin de datos,
losDataReader permanecen conectados durante todo el tiempo #ue reali$an el recorrido por los
registros
#ue contienen. %as clases #ue implementan este tipo de objeto son lDataReader y
OleDbDataReader.
'ara obtener un DataReader, ejecutaremos el m(todo E)ecuteReader* + de un objeto ommand
basado
en una consulta &-% o procedimiento almacenado.
A continuacin vamos a pasar a describir las principales propiedades de las clases lDataReader y
OleDbDataReader.
FieldCount. Devuelve el nmero de columnas *campos+ presentes en el !ila *registro+ actual.
IsClosed. Devolver los valores /rue o 0alse, para indicar si el objeto DataReader est
cerrado o no.
Item. Devuelve en !ormato nativo, el valor de la columna cuyo nombre le indicamos como
1ndice en !orma de cadena de te)to.
Una ve$ vistas las propiedades, vamos a comentar los m(todos ms destacables.
Close( ). ierra el objeto DataReader liberando los recursos correspondientes.
GetXXX( ). El objeto DataReader presenta un conjunto de m(todos #ue nos van a permitir
obtener los valores de las columnas contenidas en el mismo en !orma de un tipo de datos
determinado, segn el m(todo 2et333 empleado. E)isten diversos m(todos 2et333
atendiendo al tipo de datos de la columna, algunos ejemplos son 2et4oolean*+, 2et5nt67*+,
2et&tring*+, 2ethar*+, etc. omo parmetro a este m(todo le debemos indicar el nmero de
orden de la columna #ue deseamos recuperar.
NextResult( ). Despla$a el puntero actual al siguiente conjunto de registros, cuando la
sentencia es un procedimiento almacenado de &-% o una sentencia &-% #ue devuelve ms de
un conjunto de registros, no debemos con!undir este m(todo con el m(todo 8ove9e)t*+ de
ADO, ya #ue en este caso no nos movemos al siguiente registro, sino al siguiente conjunto de
registros.
Read( ). Despla$a el cursor actual al siguiente registro permitiendo obtener los valores del
mismo a trav(s del objeto DataReader. Este m(todo devolver /rue si e)isten ms registros
dentro del objeto DataReader, 0alse si hemos llegado al !inal del conjunto de registros. %a
posicin por de!ecto del objeto DataReader en el momento inicial es antes del primer registro,
por lo tanto para recorrer un objeto DataReader debemos comen$ar con una llamada al m(todo
Read*+, y as1 situarnos en el primer registro.El proyecto 'ruDataReader *hacer clic a#u1 para acceder al ejemplo+, contiene un !ormulario con
algunos controles, #ue muestran el uso de objetos DataReader.
El botn Empleados crea a partir de un comando, un objeto DataReader #ue recorremos para llenar
un%ist4o) con los valores de una de las columnas de la tabla #ue internamente contiene el
DataReader.
:eamos este caso en el digo !uente ;
-
7/25/2019 Las Clases DataReader
2/3
omo tambi(n hemos indicado anteriormente, un objeto ommand puede estar basado en mltiples
sentencias &-%, separadas por el carcter de punto y coma * = +, #ue se ejecuten en lote. Al crear un
DataReader desde un comando de este tipo, podemos recorrer el conjunto de consultas mediante el
m(todo 9e)tResult* + del DataReader. Un ejemplo de este tipo lo tenemos al pulsar el botnlientes'roductos del !ormulario, cuyo !uente vemos a continuacin en el digo !uente ;.
Observe en este caso #ue conectamos a trav(s de O%E D4, por lo #ue empleamos los objetos ADO
.9E/ de esta categor1a.
-
7/25/2019 Las Clases DataReader
3/3
%a 0igura 6?7 muestra este !ormulario despu(s de haber rellenado los controles %ist4o) usando
objetos DataReader.