"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 (GetDateTime, GetDouble, GetGuid, GetInt32, 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