las clases datareader

Upload: gina-huertas

Post on 25-Feb-2018

218 views

Category:

Documents


0 download

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.