SlideShare una empresa de Scribd logo
1 de 12
“AÑO DEL BUEN SERVICIO AL CUIDADANO”
TEMA: OBJETO SQLDATAREADER.
CURSO: LABORATORIO DE PROGRAMACIÓN I.
ESPECIALIDAD: INGENIERIA DE SISTEMAS Y TELEMATICA.
NOMBRE Y APELLIDO : GILDA PAMELA SILVA FLORES.
DOCENTE: MARCO AURELIO PORRO CHULL.
CILCO: IV – A AULA: 501
BAGUA GRANDE– PERÚ
2017
 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.
LAS CLASES DATAREADER
• Un objeto datareader permite la navegación hacia delante y de
Sólo lectura de los registros de vueltos por una consulta.
• A diferencia de los objetos que trabajan en modo desconectado
comentados Anteriormente, este objeto permanece conectado
durante todo el tiempo que se este trabajo con el.
• Para obtener un objeto DATAREADER tendremos que ejecutar
un método ExecuteReader() en un objeto command ,Basado en
una consulta SQL.
 PROPIEDADES
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 El nombre de la instancia de Microsoft SQL Server utilizado por el SqlDataReader.
 EJEMPLOS
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]));
}
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..
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
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.
LABORATORIO DE PROGRAMACIÓN I
LABORATORIO DE PROGRAMACIÓN I

Más contenido relacionado

La actualidad más candente (19)

Espacio de nombres system.Data.Oledb
Espacio de nombres system.Data.OledbEspacio de nombres system.Data.Oledb
Espacio de nombres system.Data.Oledb
 
Objeto sql.data table
Objeto sql.data tableObjeto sql.data table
Objeto sql.data table
 
Preparedstatemet
PreparedstatemetPreparedstatemet
Preparedstatemet
 
Ado
AdoAdo
Ado
 
Jhonzambrano-dhalinpalomino
Jhonzambrano-dhalinpalominoJhonzambrano-dhalinpalomino
Jhonzambrano-dhalinpalomino
 
Resulset
ResulsetResulset
Resulset
 
Espacio de nombres system.data.sql client
Espacio de nombres system.data.sql clientEspacio de nombres system.data.sql client
Espacio de nombres system.data.sql client
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
Conectar java con una base de datos
Conectar java con una base de datosConectar java con una base de datos
Conectar java con una base de datos
 
Continuación 3 de la creación de reportes con jasper report
Continuación 3 de la creación de reportes con jasper reportContinuación 3 de la creación de reportes con jasper report
Continuación 3 de la creación de reportes con jasper report
 
ESPACIO DE NOMBRES SYSTEM.DATA.SQLCLIENT
ESPACIO DE NOMBRES SYSTEM.DATA.SQLCLIENTESPACIO DE NOMBRES SYSTEM.DATA.SQLCLIENT
ESPACIO DE NOMBRES SYSTEM.DATA.SQLCLIENT
 
Capa_datos_Con_procedimientos_almacenados
Capa_datos_Con_procedimientos_almacenadosCapa_datos_Con_procedimientos_almacenados
Capa_datos_Con_procedimientos_almacenados
 
Espacio de Nombres System.Data.SqlClient
Espacio de Nombres System.Data.SqlClientEspacio de Nombres System.Data.SqlClient
Espacio de Nombres System.Data.SqlClient
 
Uso java jdbc
Uso java jdbcUso java jdbc
Uso java jdbc
 
Definición de-espacio-de-nombres
Definición de-espacio-de-nombresDefinición de-espacio-de-nombres
Definición de-espacio-de-nombres
 
7.1. procedimientos almacenados
7.1.  procedimientos almacenados7.1.  procedimientos almacenados
7.1. procedimientos almacenados
 
Conclu miriam
Conclu miriamConclu miriam
Conclu miriam
 
Ayuda la clase statement
Ayuda la clase statementAyuda la clase statement
Ayuda la clase statement
 
Statement
StatementStatement
Statement
 

Similar a LABORATORIO DE PROGRAMACIÓN I (20)

Jdbc
JdbcJdbc
Jdbc
 
LABORATORIO DE PROGRAMACIÓN I.
LABORATORIO DE PROGRAMACIÓN I.LABORATORIO DE PROGRAMACIÓN I.
LABORATORIO DE PROGRAMACIÓN I.
 
ADO .NET
ADO .NETADO .NET
ADO .NET
 
Tema 9 aplicaciones de dos capas por gio
Tema 9   aplicaciones de dos capas por gioTema 9   aplicaciones de dos capas por gio
Tema 9 aplicaciones de dos capas por gio
 
Proveedor act1 uni2_daw_6a
Proveedor act1 uni2_daw_6aProveedor act1 uni2_daw_6a
Proveedor act1 uni2_daw_6a
 
ADO.NET
ADO.NETADO.NET
ADO.NET
 
ADO
ADOADO
ADO
 
Objeto Sql Command
Objeto Sql CommandObjeto Sql Command
Objeto Sql Command
 
Tema 15 aplicaciones de dos capas por gio
Tema 15   aplicaciones de dos capas por gioTema 15   aplicaciones de dos capas por gio
Tema 15 aplicaciones de dos capas por gio
 
Modoconexion
ModoconexionModoconexion
Modoconexion
 
Objeto sql.data reader
Objeto sql.data readerObjeto sql.data reader
Objeto sql.data reader
 
Objeto sqlcommand
Objeto sqlcommandObjeto sqlcommand
Objeto sqlcommand
 
Base de datos
Base de datosBase de datos
Base de datos
 
Java con Base de Datos
Java con Base de Datos Java con Base de Datos
Java con Base de Datos
 
Block
BlockBlock
Block
 
Sqlcommand
SqlcommandSqlcommand
Sqlcommand
 
ResultSet
ResultSetResultSet
ResultSet
 
LABORATORIO DE PROGRAMACIÓN I
LABORATORIO DE PROGRAMACIÓN ILABORATORIO DE PROGRAMACIÓN I
LABORATORIO DE PROGRAMACIÓN I
 
Utilizaciòn de base de datos externas en arcgis.
Utilizaciòn de base de datos externas en arcgis.Utilizaciòn de base de datos externas en arcgis.
Utilizaciòn de base de datos externas en arcgis.
 
System.data.oledb
System.data.oledbSystem.data.oledb
System.data.oledb
 

Más de SILVA19_PAMELA

Más de SILVA19_PAMELA (9)

Jdbc
JdbcJdbc
Jdbc
 
OBJETO SQLCOMMAND.
OBJETO SQLCOMMAND.OBJETO SQLCOMMAND.
OBJETO SQLCOMMAND.
 
LABORATORIO DE PROGRAMACIÓN I.
LABORATORIO DE PROGRAMACIÓN I.LABORATORIO DE PROGRAMACIÓN I.
LABORATORIO DE PROGRAMACIÓN I.
 
Año del buen servicio al cuidadano
Año del buen servicio al cuidadanoAño del buen servicio al cuidadano
Año del buen servicio al cuidadano
 
LABORATORIO DE PROGRAMACIÓN I
LABORATORIO DE PROGRAMACIÓN ILABORATORIO DE PROGRAMACIÓN I
LABORATORIO DE PROGRAMACIÓN I
 
GESTOR DE BASES DE DATOS
GESTOR DE BASES DE DATOSGESTOR DE BASES DE DATOS
GESTOR DE BASES DE DATOS
 
LABORATORIO DE PROGRAMACIÓN I
LABORATORIO DE PROGRAMACIÓN ILABORATORIO DE PROGRAMACIÓN I
LABORATORIO DE PROGRAMACIÓN I
 
Diapositiva
DiapositivaDiapositiva
Diapositiva
 
Programacion
ProgramacionProgramacion
Programacion
 

LABORATORIO DE PROGRAMACIÓN I

  • 1. “AÑO DEL BUEN SERVICIO AL CUIDADANO” TEMA: OBJETO SQLDATAREADER. CURSO: LABORATORIO DE PROGRAMACIÓN I. ESPECIALIDAD: INGENIERIA DE SISTEMAS Y TELEMATICA. NOMBRE Y APELLIDO : GILDA PAMELA SILVA FLORES. DOCENTE: MARCO AURELIO PORRO CHULL. CILCO: IV – A AULA: 501 BAGUA GRANDE– PERÚ 2017
  • 2.  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.
  • 3. LAS CLASES DATAREADER • Un objeto datareader permite la navegación hacia delante y de Sólo lectura de los registros de vueltos por una consulta. • A diferencia de los objetos que trabajan en modo desconectado comentados Anteriormente, este objeto permanece conectado durante todo el tiempo que se este trabajo con el. • Para obtener un objeto DATAREADER tendremos que ejecutar un método ExecuteReader() en un objeto command ,Basado en una consulta SQL.
  • 4.
  • 5.  PROPIEDADES 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 El nombre de la instancia de Microsoft SQL Server utilizado por el SqlDataReader.
  • 6.  EJEMPLOS 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;";
  • 7. 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])); }
  • 8. 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..
  • 9. 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
  • 10. 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.