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.

Espacio de nombres: System.Data.SqlClient
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.

IsClosed y RecordsAffected son las únicas propiedades a las que se puede llamar después de cerrarse 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 RecordsAffectedpara garantizar que el valor devuelto sea exacto.

*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.

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

Con la tecnología de Blogger.

Copyright © / Programaciòn2

Template by : Urang-kurai / powered by :blogger