“AÑO DEL BUEN SERVICIO AL CUIDADANO”
TEMA: OBJETO SQLDATAREADER.
CURSO: LABORATORIO DE PROGRAMACIÓN I.
ESPECIALIDAD:
INGENIERIA DE SISTEMAS Y TELEMATICA.
NOMBRE: GILDA PAMELA
APELLIDO:
SILVA FLORES
DOCENTE: MARCO AURELIO
PORRO CHULL.
CILCO: IV – A AULA: 501
BAGUA GRANDE– PERÚ
2017
1. CONTENIDO
©
DEFINICIÓN
Para crear un SqlDataReader,
se debe llamar al método ExecuteReader del
objeto SqlCommand,
en lugar de utilizar directamente un constructor.
Mientras se está
utilizando SqlDataReader,
el objeto SqlConnection asociado
está ocupado dando servicio a SqlDataReader,
y en SqlConnection no
se puede realizar ninguna otra operación, excepto la de cerrar. Esto es así hasta que se llama al método Close de SqlDataReader. Por ejemplo, no se pueden recuperar parámetros de salida hasta
después de llamar a Close.
Los cambios que realizan
otro proceso o subproceso en un conjunto de resultados mientras se leen los
datos, pueden ser visibles para el usuario de SqlDataReader. Sin embargo, el comportamiento exacto depende de los intervalos
de tiempo.
IsClosed y RecordsAffected son
las únicas propiedades que se pueden llamar después de cerrar SqlDataReader. Si bien se puede obtener acceso a la propiedad RecordsAffected mientras
exista SqlDataReader,
se debe llamar siempre al método Close antes
de devolver el valor de RecordsAffected para
garantizar que el valor devuelto sea exacto.
©
PROPIEDADES
NOMBRE
|
DESCRIPCIÓN
|
Obtiene
un valor que indica la profundidad de anidamiento de la fila actual. (Invalida DbDataReader.Depth).
|
|
Obtiene
un valor que indica si la SqlDataReader contiene una o más filas. (Invalida DbDataReader.HasRows).
|
|
Recupera
un valor booleano que indica si el texto especificado SqlDataReader instancia se ha cerrado. (Invalida DbDataReader.IsClosed).
|
|
Obtiene
el valor de la columna especificada en su formato nativo dado el ordinal de
columna. (Invalida DbDataReader.Item[Int32]).
|
|
Obtiene
el valor de la columna especificada en su formato nativo dado el nombre de
columna. (Invalida DbDataReader.Item [String]).
|
|
Obtiene
el número de filas cambiadas, insertadas o eliminadas mediante la ejecución
de la instrucción de Transact-SQL.
(Invalida DbDataReader.RecordsAffected).
|
|
Obtiene
el número de campos de SqlDataReader que no están ocultos. (Invalida DbDataReader.VisibleFieldCount).
|
©
MÉTODOS
COLUMNA
DE DATAREADER
|
DESCRIPCIÓN
|
AllowDBNull
|
Establece si el consumidor puede establecer
la columna en un valor nulo o si el proveedor no puede determinar si el
consumidor puede establecer la columna en un valor nulo. En caso
contrario, no se establece. Una columna puede contener valores null,
incluso si no se puede establecer en un valor nulo.
|
BaseCatalogName
|
Nombre del catálogo en el almacén de datos
que contiene la columna. Es NULL si no se puede determinar el nombre del
catálogo base. El valor predeterminado de esta columna es un valor null.
|
BaseColumnName
|
El nombre de la columna en el almacén de
datos. Esto puede ser diferente del nombre de columna devuelto en la
columna ColumnName si se utilizó un alias. Un valor null si no se puede
determinar el nombre de columna base o si la columna de conjunto de filas es
derivada, pero no idéntica, de una columna en los datos del almacén. El
valor predeterminado de esta columna es un valor null.
|
BaseSchemaName
|
El nombre del esquema en el almacén de
datos que contiene la columna. Un valor null si no se puede determinar
el nombre de esquema de base. El valor predeterminado de esta columna es
un valor null.
|
BaseServerName
|
©
EJEMPLOS
§ PRIMER
using System;
using System.Data;
using System.Data.SqlClient;
class Program
{
static void Main()
{
string str = "Data Source=(local);Initial
Catalog=Northwind;"
+ "Integrated Security=SSPI";
ReadOrderData(str);
}
private static void ReadOrderData(string connectionString)
{
string queryString =
"SELECT
OrderID, CustomerID FROM dbo.Orders;";
using (SqlConnection connection =
new SqlConnection(connectionString))
{
SqlCommand command =
new SqlCommand(queryString, connection);
connection.Open();
SqlDataReader reader =
command.ExecuteReader();
// Call Read before accessing data.
while (reader.Read())
{
ReadSingleRow((IDataRecord)reader);
}
// Call Close when done reading.
reader.Close();
}
}
private static void ReadSingleRow(IDataRecord record)
{
Console.WriteLine(String.Format("{0},
{1}", record[0], record[1]));
}
§ SEGUNDO
private static void ReadOrderData(string connectionString)
{
string queryString =
"SELECT OrderID, CustomerID FROM dbo.Orders;";
using (SqlConnection connection =
new SqlConnection(connectionString))
{
SqlCommand command =
new SqlCommand(queryString, connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
// Call Read before accessing data.
while (reader.Read())
{
Console.WriteLine(String.Format("{0}, {1}",
reader[0], reader[1]));
}
// Call Close when done reading.
reader.Close();
}
}
§ TERCERO
static void
HasRows(SqlConnection connection)
{
using (connection)
{
SqlCommand command = new SqlCommand(
"SELECT CategoryID, CategoryName FROM Categories;",
connection);
connection.Open();
SqlDataReader reader =
command.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
Console.WriteLine("{0}\t{1}", reader.GetInt32(0),
reader.GetString(1));
}
}
else
{
Console.WriteLine("No rows found.");
}
reader.Close();
}
}
1. RESUMEN
El
proveedor de datos .NET Framework para Oracle admite el uso de cursores REF
CURSOR de Oracle para devolver los resultados de una consulta.Un REF CURSOR de
Oracle se devuelve en forma de objeto OracleDataReader.
Puede
recuperar un objeto OracleDataReader,
que representa un REF CURSOR de Oracle, mediante el método ExecuteReader. También puede especificar un OracleCommand que devuelva uno o varios cursores REF CURSOR
de Oracle como SelectCommand de
un OracleDataAdapterutilizado para rellenar un DataSet.
Para
obtener acceso a un REF CURSOR devuelto desde un origen de datos de Oracle,
cree un OracleCommand para
la consulta y agregue un parámetro de salida que establezca una referencia
entre el REF CURSOR y la colección Parameters de OracleCommand. El nombre del
parámetro debe coincidir con el nombre del parámetro REF CURSOR de la
consulta. Establezca el tipo del parámetro en OracleType.Cursor. El método ExecuteReader del OracleCommand devolverá un OracleDataReader para el REF CURSOR.
Si OracleCommand devuelve varios
cursores REF CURSOR, agregue varios parámetros de salida. Puede tener
acceso a los distintos cursores REF CURSOR llamando al método OracleCommand.ExecuteReader. La
llamada a ExecuteReader devuelve
un objeto OracleDataReader que
haga referencia al primer REF CURSOR. A continuación, puede llamar al
método OracleDataReader.NextResult para
obtener acceso a los cursores REF CURSOR posteriores. Aunque los
parámetros de la colección OracleCommand.Parameters tengan
el mismo nombre que los parámetros de salida de REF CURSOR, OracleDataReader obtendrá acceso
a éstos en el mismo orden en el que se agregaron a la colección Parameters.
2. RECOMENDACIONES
©
La posición predeterminada de SqlDataReader es antes del primer
registro. Por tanto, se debe llamar a Read para iniciar el acceso a cualquier dato.
©
Sólo se puede abrir un SqlDataReader por cada
conexión SqlConnection asociada
cada vez, y cualquier intento de abrir otro produce un error si no se cierra el
primero. De forma similar, mientras se utiliza el objeto SqlDataReader, éste mantiene ocupado a
la conexión SqlConnection asociada
hasta que se llama a Close.
©
Se crean
un objeto Connection especificando la cadena de conexión.
©
Se crea
un DataAdapter.
©
Se crea
un objeto Command asociado al DataAdapter, con la conexión adecuada y la
sentencia SQL que haya de ejecutarse.
©
Se crea
un DataSet donde almacenar los datos.
©
Se abre
la conexión.
©
Se
rellena el DataSet con datos a través del DataAdapter.
©
Se cierra
la conexión.
©
Se
trabaja con los datos almacenados en el DataSet
3. CONCLUSIONES
© En la versión de .NET
Framework de Windows Server 2003 se incluye una propiedad adicional para
el DataReader, HasRows, que permite determinar si
el DataReader ha
devuelto algún resultado antes de realizar una lectura del mismo.
© No llame
a Close o Dispose para objetos Connection o DataReader ni para ningún otro
objeto administrado en el método Finalize de
su clase. En un finalizador, libere solo los recursos no administrados que
pertenezcan directamente a su clase. Si la clase no dispone de recursos no
administrados, no incluya un método Finalize en la definición de clase. Para obtener más
información, consulta Garbage Collection.
© Se recomienda que el usuario
controle también cualquier conversión del tipo NUMBER de Oracle a un tipo
válido de .NET Framework antes de almacenar el valor en DataRow para evitar que se
produzca una excepción OverflowException. Puede
utilizar el evento FillError para
determinar si se ha producido una excepción OverflowException. Para obtener más información sobre el
evento FillError, vea Control de eventos DataAdapter.
4. GLOSARIO DE TERMINO
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)).
AsParallel ()._Sobrecargado.
Habilita la paralelización de una consulta. (Definido por ParallelEnumerable).
AsQueryable ()._Sobrecargado.
Convierte un IEnumerable para un IQueryable. (Definido por Queryable).
Cast<TResult> ()._Convierte
los elementos de un IEnumerable al tipo especificado. (Definido por
Enumerable).
OfType<TResult> ()._Filtra
los elementos de un IEnumerable basado en un tipo especificado. (Definido por
Enumerable).
5. BIBLIOGRAFÍA
https://msdn.microsoft.com/es-es/library/haa3afyz(v=vs.110).aspx
https://msdn.microsoft.com/es-es/library/ms254931(v=vs.110).aspx
https://msdn.microsoft.com/es-es/.../system.data.sqlclient.sqldatareader(v=vs.110).aspx
https://msdn.microsoft.com/es-pe/library/aa720705(v=vs.71).aspx
https://es.wikipedia.org/wiki/ADO.NET
https://msdn.microsoft.com/es-es/library/haa3afyz(v=vs.110).aspx
https://msdn.microsoft.com/es-es/library/ms254931(v=vs.110).aspx
https://msdn.microsoft.com/es-es/.../system.data.sqlclient.sqldatareader(v=vs.110).aspx
No hay comentarios:
Publicar un comentario