viernes, 14 de julio de 2017

OBJETO SQLDATAREADER


                                            "AÑO DEL BUEN SERVICIO AL CIUDADANO"

                          ESCUELA ACADÉMICA INGENIERÍA DE SISTEMAS Y TELEMÁTICA


                                                                    ASIGNATURA

                                              LABORATORIO DE PROGRAMACIÓN I


                                                                           TEMA

                                                            OBJETO SQLDATAREADER


                                                                         AUTORES

                                                ARISTA CORONEL JORGE LUIS

                                             RAMOS FERNÁNDEZ SONIA ELVIRA


                                                                         DOCENTE

                                            ING. MARCO AURELIO PORRO CHULLI


                                                    BAGUA GRANDE-UTCUBAMBA

                                                                        AMAZONAS 

                                                                               2017



1.     CONTENIDO

DEFINICIÓN:

Representa un conjunto de comandos de datos y una conexión a una base de datos que se usan para rellenar DataSet y actualizar una base de datos de SQL Server. Esta clase no puede heredarse.

Puede usar el DataReader de ADO.NET para recuperar flujos de datos de solo lectura y solo avance de una base de datos.  Los resultados se devuelven a medida que se ejecuta la consulta y se almacenan en el búfer de red del cliente hasta que se solicitan con el método Read del DataReader.  Con el DataReader puede aumentar el rendimiento de la aplicación al recuperar datos en cuanto están disponibles y almacenar (de forma predeterminada) una sola fila cada vez en memoria, lo que reduce la sobrecarga del sistema. 
Un DataAdapter se utiliza para recuperar datos de un origen de datos y llenar tablas con un DataSet.   DataAdapter también resuelve los cambios realizados en DataSet de vuelta al origen de datos.  Mediante el objeto Connection del proveedor de datos .NET Framework, DataAdapter se conecta a un origen de datos y utiliza objetos Command para recuperar datos del origen de datos y resolver los cambios a dicho origen. 
Cada proveedor de datos .NET Framework incluido con .NET Framework tiene un objeto DbDataReader y un objeto DbDataAdapter, el proveedor de datos .NET Framework para OLE DB incluye un objeto OleDbDataReader y un objeto OleDbDataAdapter, el proveedor de datos .NET Framework para SQL Server incluye un objeto SqlDataReader y un objeto SqlDataAdapter, el proveedor de datos .NET Framework para ODBC incluye un objeto OdbcDataReader y un objeto OdbcDataAdapter, y el proveedor de datos .NET Framework para Oracle incluyes un objeto OracleDataReader y un objeto OracleDataAdapter.

PROPIEDADES:
Ø Connection Obtiene la SqlConnection asociada a la SqlDataReader.
 
Ø Depth Obtiene un valor que indica la profundidad de anidamiento de la fila actual.(Invalida DbDataReader.Depth).
    
Ø FieldCount     Obtiene el número de columnas de la fila actual.(Invalida DbDataReader.FieldCount).

Ø HasRows Obtiene un valor que indica si la SqlDataReader contiene una o más filas.(Invalida DbDataReader.HasRows).
    
Ø IsClosed Recupera un valor booleano que indica si el texto especificado SqlDataReader instancia se ha cerrado.(Invalida DbDataReader.IsClosed).
 
Ø Item(Int32) Obtiene el valor de la columna especificada en su formato nativo dado el ordinal de columna.(Invalida DbDataReader.Item(Int32)).
 
Ø Item(String) Obtiene el valor de la columna especificada en su formato nativo dado el nombre de columna.(Invalida DbDataReader.Item(String)).

Ø RecordsAffected Obtiene el número de filas cambiadas, insertadas o eliminadas mediante la ejecución de la instrucción de Transact-SQL.(Invalida DbDataReader.RecordsAffected).

Ø VisibleFieldCount Obtiene el número de campos de SqlDataReader que no están ocultos.(Invalida DbDataReader.VisibleFieldCount).

 METODOS:

Ø  Close() Cierra el objeto SqlDataReader.(Invalida DbDataReader.Close()).

Ø  CreateObjRef(Type) Crea un objeto que contiene toda la información relevante necesaria para generar a un proxy que se utiliza para comunicarse con un objeto remoto.(Heredado de MarshalByRefObject).


Ø  Dispose() Libera todos los recursos usados por la instancia actual de la clase DbDataReader.(Heredado de DbDataReader).

Ø  Dispose(Boolean) Libera los recursos administrados que usa el DbDataReader y, opcionalmente, libera los recursos no administrados.(Heredado de DbDataReader).


Ø  Equals(Object) Determina si el objeto especificado es igual al objeto actual.(Heredado de Object).

Ø  Finalize()   Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por el recolector de basura. (Heredado de Object).
      
Ø  GetBoolean(Int32) Obtiene el valor de la columna especificada como tipo Boolean.(Invalida DbDataReader.GetBoolean(Int32)).


Ø  GetByte(Int32)  Obtiene el valor de la columna especificada como un byte.(Invalida DbDataReader.GetByte(Int32)).

Ø  GetBytes(Int32, Int64, Byte(), Int32, Int32) Lee una secuencia de bytes desde el desplazamiento de la columna especificada en el búfer de una matriz a partir del desplazamiento de búfer dado.(Invalida DbDataReader.GetBytes(Int32, Int64, Byte(), Int32, Int32)).
      
Ø  GetChar(Int32)   Obtiene el valor de la columna especificada como un único carácter.(Invalida DbDataReader.GetChar(Int32)).


Ø  GetChars(Int32, Int64, Char(), Int32, Int32) Lee una secuencia de caracteres del desplazamiento de columna especificado en el búfer como matriz, comenzando en el desplazamiento de búfer dado.(Invalida DbDataReader.GetChars(Int32, Int64, Char(), Int32, Int32)).
Ø  GetData(Int32)           Devuelve un DbDataReader objeto para el ordinal de columna solicitado.(Heredado de DbDataReader).

Ø  GetDataTypeName(Int32) Obtiene una cadena que representa el tipo de datos de la columna especificada.(Invalida DbDataReader.GetDataTypeName(Int32)).


Ø  GetDateTime(Int32) Obtiene el valor de la columna especificada como un objeto DateTime.(Invalida DbDataReader.GetDateTime(Int32)).

Ø  GetDateTimeOffset(Int32) Recupera el valor de la columna especificada como un DateTimeOffset objeto.

Ø  GetDbDataReader(Int32) Devuelve un objeto DbDataReader para el índice de columna solicitado que puede ser invalidado con una implementación específica del proveedor.(Heredado de DbDataReader).

Ø  GetDecimal(Int32) Obtiene el valor de la columna especificada como un objeto Decimal.(Invalida DbDataReader.GetDecimal(Int32)).

Ø  GetDouble(Int32) Obtiene el valor de la columna especificada como un número de punto flotante de precisión doble.(Invalida DbDataReader.GetDouble(Int32)).

Ø  GetEnumerator() Devuelve un objeto IEnumerator que itera a través del objeto SqlDataReader.(Invalida DbDataReader.GetEnumerator()).

Ø  GetFieldType(Int32) Obtiene el Type que es el tipo de datos del objeto.(Invalida DbDataReader.GetFieldType(Int32)).


Ø  GetFieldValue(Of T)(Int32) Sincrónicamente, obtiene el valor de la columna especificada como un tipo. GetFieldValueAsync(Of T) es la versión asincrónica de este método.(Invalida DbDataReader.GetFieldValue(Of T)(Int32)).

Ø  GetFieldValueAsync(Of T)(Int32)  Obtiene el valor de la columna especificada como un tipo de forma asincrónica.(Heredado de DbDataReader).

Ø  GetFieldValueAsync(Of T)(Int32, CancellationToken) Obtiene el valor de la columna especificada como un tipo de forma asincrónica. GetFieldValue(Of T) es la versión sincrónica de este método.(Invalida DbDataReader.GetFieldValueAsync(Of T)(Int32, CancellationToken)).

Ø  GetFloat(Int32) Obtiene el valor de la columna especificada como un número de punto flotante de precisión sencilla.(Invalida DbDataReader.GetFloat(Int32)).

Ø  GetGuid(Int32) Obtiene el valor de la columna especificada como un identificador único global (GUID).(Invalida DbDataReader.GetGuid(Int32)).

Ø  GetHashCode()  Sirve como la función hash predeterminada.(Heredado de Object).

Ø  GetInt16(Int32)  Obtiene el valor de la columna especificada como un entero de 16 bits con signo.(Invalida DbDataReader.GetInt16(Int32)).

Ø  GetInt32(Int32)  Obtiene el valor de la columna especificada como un entero de 32 bits con signo.(Invalida DbDataReader.GetInt32(Int32)).
GetInt64(Int32)   
Obtiene el valor de la columna especificada como un entero de 64 bits con signo.(Invalida DbDataReader.GetInt64(Int32)).

Ø  GetLifetimeService()    Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.(Heredado de MarshalByRefObject).

Ø  GetName(Int32). Obtiene el nombre de la columna especificada.(Invalida DbDataReader.GetName(Int32)).

Ø  GetOrdinal(String) Obtiene el índice de columna, dado el nombre de la columna.(Invalida DbDataReader.GetOrdinal(String)).

Ø  GetProviderSpecificFieldType(Int32) Obtiene un Object que es una representación del tipo de campo específico del proveedor subyacente

Ø  GetProviderSpecificValue(Int32) Obtiene un Object que es una representación del valor específico del proveedor subyacente.(Invalida DbDataReader.GetProviderSpecificValue(Int32)).

Ø  GetProviderSpecificValues(Object()) Obtiene una matriz de objetos que son una representación de los valores específicos del proveedor subyacente.(Invalida DbDataReader.GetProviderSpecificValues(Object())).


Ø  GetSchemaTable() Devuelve un objeto DataTable que describe los metadatos de columna del SqlDataReader.(Invalida DbDataReader.GetSchemaTable()).

Ø  GetSqlBinary(Int32) Obtiene el valor de la columna especificada como un SqlBinary.

Ø  GetSqlBoolean(Int32) Obtiene el valor de la columna especificada como un SqlBoolean.


Ø  GetSqlByte(Int32) Obtiene el valor de la columna especificada como un SqlByte.

Ø  GetSqlBytes(Int32) Obtiene el valor de la columna especificada como SqlBytes.

Ø  GetSqlChars(Int32) Obtiene el valor de la columna especificada como SqlChars.

Ø  GetSqlDateTime(Int32) Obtiene el valor de la columna especificada como un SqlDateTime.

Ø  GetSqlDecimal(Int32) Obtiene el valor de la columna especificada como un SqlDecimal.

Ø  GetSqlDouble(Int32)  Obtiene el valor de la columna especificada como un SqlDouble.

Ø  GetSqlGuid(Int32) Obtiene el valor de la columna especificada como un SqlGuid.

Ø  GetSqlInt16(Int32) Obtiene el valor de la columna especificada como un SqlInt16.

Ø  GetSqlInt32(Int32) Obtiene el valor de la columna especificada como un SqlInt32.

Ø  GetSqlInt64(Int32) Obtiene el valor de la columna especificada como un SqlInt64.

Ø  GetSqlMoney(Int32) Obtiene el valor de la columna especificada como un SqlMoney.


Ø  GetSqlSingle(Int32) Obtiene el valor de la columna especificada como un SqlSingle.

Ø  GetSqlString(Int32) Obtiene el valor de la columna especificada como un SqlString.

Ø  GetSqlValue(Int32) Devuelve el valor de datos de la columna especificada como un tipo de SQL Server.

Ø  GetSqlValues(Object()) Rellena una matriz de Object que contiene los valores para todas las columnas en el registro, expresados como tipos de SQL Server.

Ø  GetSqlXml(Int32) Obtiene el valor de la columna especificada como un valor XML.

Ø  GetStream(Int32) Recupera tipos de datos binary, image, varbinary, UDT y variant como un Stream. (Invalida DbDataReader.GetStream(Int32)).

Ø  GetString(Int32) Obtiene el valor de la columna especificada como una cadena.(Invalida DbDataReader.GetString(Int32)).

Ø  GetTextReader(Int32)         Recupera Char, NChar, NText, NVarChar, texto, varChar y tipos de datos Variant como un TextReader.(Invalida DbDataReader.GetTextReader(Int32)).

Ø  GetTimeSpan(Int32) Recupera el valor de la columna especificada como un TimeSpan objeto.


Ø  GetType()Obtiene el Type de la instancia actual.(Heredado de Object).

Ø  GetValue(Int32)         Obtiene el valor de la columna especificada en su formato nativo.(Invalida DbDataReader.GetValue(Int32)).

Ø  GetValues(Object()) Rellena una matriz de objetos con los valores de columna de la fila actual.(Invalida DbDataReader.GetValues(Object())).

Ø  GetXmlReader(Int32)          Recupera datos de tipo XML como un XmlReader.

Ø  InitializeLifetimeService() Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.(Heredado de MarshalByRefObject).

Ø  IsCommandBehavior(CommandBehavior) Determina si el texto especificado CommandBehavior coincide con el de la SqlDataReader.

Ø  IsDBNull(Int32)         Obtiene un valor que indica si la columna contiene valores inexistentes o ausentes.(Invalida DbDataReader.IsDBNull(Int32)).

Ø  IsDBNullAsync(Int32)         Una versión asincrónica de IsDBNull, que obtiene un valor que indica si la columna contiene valores inexistentes o ausentes.(Heredado de DbDataReader).

Ø  IsDBNullAsync(Int32, CancellationToken) Una versión asincrónica de IsDBNull, que obtiene un valor que indica si la columna contiene valores inexistentes o ausentes.
           Token de cancelación que se puede usar para solicitar que se abandone la operación antes de que transcurra el tiempo de espera del comando. Las excepciones se mostrarán a través del objeto de tarea devuelto.(InvalidaDbDataReader.IsDBNullAsync(Int32,CancellationToken)).

Ø  MemberwiseClone() Crea una copia superficial del Object actual.(Heredado de Object).

Ø  MemberwiseClone(Boolean) Crea una copia superficial del elemento actual MarshalByRefObject objeto.(Heredado de MarshalByRefObject).

Ø  NextResult() Desplaza el lector de datos al resultado siguiente, cuando se leen los resultados de las instrucciones de Transact-SQL por lotes.(Invalida DbDataReader.NextResult()).

Ø  NextResultAsync() Una versión asincrónica de NextResult, que hace avanzar el lector hasta el resultado siguiente cuando se leen los resultados de un lote de instrucciones.
Invoca NextResultAsync con CancellationToken.None.(Heredado de DbDataReader).

Ø  NextResultAsync(CancellationToken) Una versión asincrónica de NextResult, que desplaza el lector de datos al resultado siguiente cuando se leen los resultados de lote Transact-SQL instrucciones.
Token de cancelación que se puede usar para solicitar que se abandone la operación antes de que transcurra el tiempo de espera del comando. Las excepciones se mostrarán a través del objeto Task devuelto.(Invalida DbDataReader.NextResultAsync(CancellationToken)).

Ø  Read() Desplaza SqlDataReader al siguiente registro.(Invalida DbDataReader.Read()).

Ø  ReadAsync() Una versión asincrónica de Read, que hace avanzar el lector hasta el siguiente registro de un conjunto de resultados. Este método invoca ReadAsync con CancellationToken.None.(Heredado de DbDataReader).

Ø  ReadAsync(CancellationToken) Una versión asincrónica de Read, qué avances el SqlDataReader al siguiente registro.
Token de cancelación que se puede usar para solicitar que se abandone la operación antes de que transcurra el tiempo de espera del comando. Las excepciones se mostrarán a través del objeto Task devuelto.(Invalida DbDataReader.ReadAsync(CancellationToken)).

Ø  ToString() Devuelve una cadena que representa al objeto actual. (Heredado de Object).

 EJEMPLOS:

The following example creates a T:System.Data.SqlClient.SqlConnection, a 
T:System.Data.SqlClient.SqlCommand, and a T:System.Data.SqlClient.SqlDataReader. 
The example reads through the data, writing it out to the console window. The code then 
closes the T:System.Data.SqlClient.SqlDataReader. The 
T:System.Data.SqlClient.SqlConnection is closed automatically at the end of the using 
code block.
 
Option Explicit On
Option Strict On
 
Imports System.Data
Imports System.Data.SqlClient
 
Module Module1
 
    Sub Main()
        Dim str As String = "Data Source=(local);Initial Catalog=Northwind;" _
       & "Integrated Security=SSPI;"
        ReadOrderData(str)
    End Sub
 
    Private Sub ReadOrderData(ByVal connectionString As String)
        Dim queryString As String = _
            "SELECT OrderID, CustomerID FROM dbo.Orders;"
 
        Using connection As New SqlConnection(connectionString)
            Dim command As New SqlCommand(queryString, connection)
            connection.Open()
 
            Dim reader As SqlDataReader = command.ExecuteReader()
 
            ' Call Read before accessing data.
            While reader.Read()
                ReadSingleRow(CType(reader, IDataRecord))
            End While
 
            ' Call Close when done reading.
            reader.Close()
        End Using
    End Sub
 
    Private Sub ReadSingleRow(ByVal record As IDataRecord)
       Console.WriteLine(String.Format("{0}, {1}", record(0), record(1)))
 
    End Sub
 
End Module
 
2.    RESUMEN

OBJETO DATAREADER

Puede usar el DataReader de ADO.NET para recuperar flujos de datos de solo lectura y solo avance de una base de datos.  Los resultados se devuelven a medida que se ejecuta la consulta y se almacenan en el búfer de red del cliente hasta que se solicitan con el método Read del DataReader.  Con el DataReader puede aumentar el rendimiento de la aplicación al recuperar datos en cuanto están disponibles y almacenar (de forma predeterminada) una sola fila cada vez en memoria, lo que reduce la sobrecarga del sistema.
 
Un DataAdapter se utiliza para recuperar datos de un origen de datos y llenar tablas con un DataSet.   DataAdapter también resuelve los cambios realizados en DataSet de vuelta al origen de datos.  Mediante el objeto Connection de las propiedades que presnta cada bade de datos del DataAdapter se conecta a un origen de datos y utiliza objetos Command para recuperar datos del origen de datos y resolver los cambios a dicho origen. 

Cada proveedor de datos .NET Framework incluido con .NET Framework tiene un objeto DbDataReader y un objeto DbDataAdapter, el proveedor de datos .NET Framework para OLE DB incluye un objeto OleDbDataReader y un objeto OleDbDataAdapter, el proveedor de datos .NET Framework para SQL Server incluye un objeto SqlDataReader y un objeto SqlDataAdapter, el proveedor de datos .NET Framework para ODBC incluye un objeto OdbcDataReader y un objeto OdbcDataAdapter, y el proveedor de datos .NET Framework para Oracle incluyes un objeto OracleDataReader y un objeto OracleDataAdapter.

3.    SUMMARY

SQLDATAREADER OBJECT

you can use the ADO.NET DataReader to retrieve read-only and forward-only data streams from a database. The results are returned as the query is executed and stored in the client's network buffer until requested by the Read method of the DataReader. With the DataReader you can increase the performance of the application by retrieving data as soon as it is available and storing (by default) a single row at a time in memory, which reduces system overhead.
 
A DataAdapter is used to retrieve data from a data source and fill tables with a DataSet. DataAdapter also resolves the changes made in DataSet back to the data source. Using the Connection object of the properties that each dataadapter of the DataAdapter connects to a data source, it uses Command objects to retrieve data from the data source and resolve the changes to that data source.

Each .NET Framework data provider that ships with the .NET Framework has a DbDataReader object and a DbDataAdapter object, the .NET Framework data provider for OLE DB includes an OleDbDataReader object and an OleDbDataAdapter object, the .NET Framework data provider for SQL Server Includes a SqlDataReader object and a SqlDataAdapter object, the .NET Framework data provider for ODBC includes an OdbcDataReader object and an OdbcDataAdapter object, and the .NET Framework data provider for Oracle includes an OracleDataReader object and an OracleDataAdapter object.

4.    RECOMENDACIONES

Puede usar el DataReader de ADO.NET para recuperar flujos de datos de solo lectura y solo avance de una base de datos.  Los resultados se devuelven a medida que se ejecuta la consulta y se almacenan en el búfer de red del cliente hasta que se solicitan con el método Read del DataReader.  Con el DataReader puede aumentar el rendimiento de la aplicación al recuperar datos en cuanto están disponibles y almacenar (de forma predeterminada) una sola fila cada vez en memoria, lo que reduce la sobrecarga del sistema. 
Puede utilizar el método Read del objeto DataReader para obtener una fila a partir de los resultados de una consulta. Para tener acceso a cada columna de la fila devuelta, puede pasar a DataReader el nombre o referencia numérica de la columna en cuestión. Sin embargo, el mejor rendimiento se logra con los métodos que ofrece DataReader y que permiten tener acceso a los valores de las columnas en sus tipos de datos nativos (GetDateTimeGetDoubleGetGuidGetInt32, etc.). Para obtener una lista de métodos de descriptor de acceso con tipo para DataReadersde proveedores de datos específicos, vea las secciones OleDbDataReader y SqlDataReader. Si se utilizan los métodos de descriptor de acceso con tipo, dando por supuesto que se conoce el tipo de datos subyacentes, se reduce el número de conversiones de tipo necesarias para recuperar el valor de una columna.
5.    CONCLUSIONES

El objeto DataReader es, en cierto modo, sinónimo de un cursor de sólo lectura y sólo hacia delante para datos. La API de DataReader es compatible con datos sin formato y con datos jerárquicos. Cuando se ejecuta un comando en la base de datos, se devuelve un objeto DataReader. El formato del objeto DataReader devuelto es distinto de un conjunto de registros. Por ejemplo, podría utilizarse el objeto DataReader para mostrar los resultados de una lista de búsqueda en una página Web.

Los objetos SqlDataReader y OleDbDataReader, van a ser equivalentes a los cursores de sólo lectura y 
movimiento hacia adelante de ADO (read only/forward-only), en este caso no se ofrece un acceso desconectado de los datos, sino que se conecta directamente al almacén de datos y nos devolverá un conjunto de registros para que los podamos recorrer.
Un objeto DataReader lo vamos a obtener de la ejecución de una sentencia SQL o bien de la ejecución de un procedimiento almacenado, representados ambos por un objeto Command, como ya vimos en el apartado anterior, a partir de la llamada al método ExecuteReader().

6.    GLOSARIO DE TÉRMINOS

Ø  FieldCount   Indica el número de campos del registro actual. Esta propiedad es de sólo lectura. Espacio de nombres: System.Data.Common Ensamblado: System.Data
Ø  RecordsAffected: propiedad no se establece hasta que se leen todas las filas y se cierre el SqlDataReader.
Ø  DataReader: son unas de las formas de obtener datos en. ADO.NET

7.    LINKOGRAFÍA


http://www.monografias.com/trabajos93/ado-net-idat/ado-net-idat.shtml