SqlDataReader
Proporciona una forma de leer una secuencia de filas sólo hacia delante en una base de datos de SQL Server. Esta clase no se puede heredar.
Ensamblado: System.Data (en system.data.dll)
Sintaxis
public class SqlDataReader : DbDataReader, IDataReader, IDisposable, IDataRecord
C++:
public ref class SqlDataReader : public DbDataReader, IDataReader, IDisposable, IDataRecord
VB:
'Declaración Public Class SqlDataReader Inherits DbDataReader Implements IDataReader, IDisposable, IDataRecord 'Uso Dim instance As SqlDataReader
Comentarios
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 realiza otro proceso o subproceso en un conjunto de resultados mientras se leen los datos, pueden ser visibles para el usuario deSqlDataReader. Sin embargo, el comportamiento exacto depende de los intervalos de tiempo.
*Nota
Para obtener un rendimiento óptimo, SqlDataReader evita crear objetos innecesarios o hacer copias de objetos innecesarias. Por tanto, varias llamadas a los métodos como GetValue devuelven una referencia al mismo objeto. Conviene tener mucho cuidado si se modifica el valor subyacente de los objetos devueltos por métodos como GetValue.
Para obtener un rendimiento óptimo, SqlDataReader evita crear objetos innecesarios o hacer copias de objetos innecesarias. Por tanto, varias llamadas a los métodos como GetValue devuelven una referencia al mismo objeto. Conviene tener mucho cuidado si se modifica el valor subyacente de los objetos devueltos por métodos como GetValue.
Ejemplo
En el siguiente ejemplo, se crean una conexión SqlConnection, un objeto SqlCommand y un SqlDataReader. En el ejemplo se leen los datos y se escriben en la ventana de la consola. Seguidamente, el código cierra SqlDataReader. SqlConnection se cierra automáticamente al final del bloque de código using.
VB:
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() Console.WriteLine(String.Format("{0}, {1}", _ reader(0), reader(1))) End While ' Call Close when done reading. reader.Close() End Using End Sub
C#:
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(); } }
0 comentarios:
Publicar un comentario