IDataReader Arabirim

Tanım

Bir veri kaynağında komut yürütülerek elde edilen sonuç kümelerinin yalnızca ileriye doğru bir veya daha fazla akışını okumanın bir aracıdır ve ilişkisel veritabanlarına erişen .NET veri sağlayıcıları tarafından uygulanır.

public interface class IDataReader : IDisposable, System::Data::IDataRecord
public interface IDataReader : IDisposable, System.Data.IDataRecord
type IDataReader = interface
    interface IDataRecord
    interface IDisposable
type IDataReader = interface
    interface IDisposable
    interface IDataRecord
Public Interface IDataReader
Implements IDataRecord, IDisposable
Türetilmiş
Uygulamalar

Örnekler

Aşağıdaki örnek, SqlConnection, SqlCommandve SqlDataReadertüretilmiş sınıfların örneklerini oluşturur. Örnek, verileri okuyup konsola yazar. Son olarak, örnek öğesini ve ardından öğesini SqlConnectionkapatırSqlDataReader.

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 dataRecord)
{
    Console.WriteLine(String.Format("{0}, {1}", dataRecord[0], dataRecord[1]));
}
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

Açıklamalar

IDataReader ve IDataRecord arabirimleri, devralan bir sınıfın bir DataReader sınıf uygulamasına olanak sağlar ve bu da sonuç kümelerinin yalnızca ileriye doğru bir veya daha fazla akışını okumanın bir aracıdır. Sınıflar hakkında DataReader daha fazla bilgi için bkz. DataReader Kullanarak Veri Alma.

Bir uygulama doğrudan arabirimin bir örneğini IDataReader oluşturmaz, ancak devralan IDataReaderbir sınıfın örneğini oluşturur.

Devralan IDataReader sınıfların devralınan üyeleri uygulaması ve genellikle sağlayıcıya özgü işlevler eklemek için ek üyeler tanımlaması gerekir.

Veriler okunurken başka bir işlem veya iş parçacığı tarafından bir sonuç kümesinde yapılan değişiklikler, uygulayan IDataReaderbir sınıfın kullanıcısı tarafından görülebilir. Ancak kesin davranış hem sağlayıcıya hem de zamanlamaya bağlıdır.

Uygulayanlara Notlar

.NET Framework veri sağlayıcıları arasında tutarlılığı artırmak için, devralan sınıfı Command biçiminde Prv adlandırın. Burada Prv belirli bir .NET Framework veri sağlayıcısı ad alanında tüm sınıflara verilen tekdüzen ön ektir. Örneğin, Sql ad alanında System.Data.SqlClient sınıfının ön ekidirSqlDataAdapter.

Kullanıcılar doğrudan bir DataReader sınıfın örneğini oluşturmaz. Bunun yerine, nesnesinin DataReaderExecuteReader yöntemi Command aracılığıyla örneği alır. Bu nedenle, oluşturucuları iç olarak işaretlemeniz DataReader gerekir.

Özellikler

Depth

Geçerli satır için iç içe yerleştirme derinliğini gösteren bir değer alır.

FieldCount

Geçerli satırdaki sütun sayısını alır.

(Devralındığı yer: IDataRecord)
IsClosed

Veri okuyucunun kapalı olup olmadığını belirten bir değer alır.

Item[Int32]

Belirtilen dizinde bulunan sütunu alır.

(Devralındığı yer: IDataRecord)
Item[String]

Belirtilen ada sahip sütunu alır.

(Devralındığı yer: IDataRecord)
RecordsAffected

SQL deyiminin yürütülmesiyle değiştirilen, eklenen veya silinen satır sayısını alır.

Yöntemler

Close()

IDataReader Nesneyi kapatır.

Dispose()

Uygulama tarafından tanımlanan, yönetilmeyen kaynakları serbest bırakma, salma veya sıfırlama ile ilişkili görevleri gerçekleştirir.

(Devralındığı yer: IDisposable)
GetBoolean(Int32)

Belirtilen sütunun değerini Boole değeri olarak alır.

(Devralındığı yer: IDataRecord)
GetByte(Int32)

Belirtilen sütunun 8 bit işaretsiz tamsayı değerini alır.

(Devralındığı yer: IDataRecord)
GetBytes(Int32, Int64, Byte[], Int32, Int32)

Belirtilen sütun uzaklığından arabelleğe verilen arabellek uzaklığından başlayarak bir dizi olarak bayt akışını okur.

(Devralındığı yer: IDataRecord)
GetChar(Int32)

Belirtilen sütunun karakter değerini alır.

(Devralındığı yer: IDataRecord)
GetChars(Int32, Int64, Char[], Int32, Int32)

Belirtilen sütun uzaklığından arabelleğe verilen arabellek uzaklığından başlayarak bir dizi olarak bir karakter akışı okur.

(Devralındığı yer: IDataRecord)
GetData(Int32)

Belirtilen sütun sıralı için bir IDataReader döndürür.

(Devralındığı yer: IDataRecord)
GetDataTypeName(Int32)

Belirtilen alan için veri türü bilgilerini alır.

(Devralındığı yer: IDataRecord)
GetDateTime(Int32)

Belirtilen alanın tarih ve saat veri değerini alır.

(Devralındığı yer: IDataRecord)
GetDecimal(Int32)

Belirtilen alanın sabit konumlu sayısal değerini alır.

(Devralındığı yer: IDataRecord)
GetDouble(Int32)

Belirtilen alanın çift duyarlıklı kayan nokta sayısını alır.

(Devralındığı yer: IDataRecord)
GetFieldType(Int32)

Type'den GetValue(Int32)döndürülecek türüne Object karşılık gelen bilgileri alır.

(Devralındığı yer: IDataRecord)
GetFloat(Int32)

Belirtilen alanın tek duyarlıklı kayan nokta sayısını alır.

(Devralındığı yer: IDataRecord)
GetGuid(Int32)

Belirtilen alanın GUID değerini döndürür.

(Devralındığı yer: IDataRecord)
GetInt16(Int32)

Belirtilen alanın 16 bit imzalı tamsayı değerini alır.

(Devralındığı yer: IDataRecord)
GetInt32(Int32)

Belirtilen alanın 32 bit imzalı tamsayı değerini alır.

(Devralındığı yer: IDataRecord)
GetInt64(Int32)

Belirtilen alanın 64 bit imzalı tamsayı değerini alır.

(Devralındığı yer: IDataRecord)
GetName(Int32)

Bulunacak alanın adını alır.

(Devralındığı yer: IDataRecord)
GetOrdinal(String)

Adlandırılmış alanın dizinini döndürür.

(Devralındığı yer: IDataRecord)
GetSchemaTable()

sütun meta verilerini IDataReaderaçıklayan bir DataTable döndürür.

null Yürütülen komut sonuç kümesi döndürmediyse veya döndürdükten sonra NextResult() döndürürfalse.

GetString(Int32)

Belirtilen alanın dize değerini alır.

(Devralındığı yer: IDataRecord)
GetValue(Int32)

Belirtilen alanın değerini döndürür.

(Devralındığı yer: IDataRecord)
GetValues(Object[])

Bir nesne dizisini geçerli kaydın sütun değerleriyle doldurur.

(Devralındığı yer: IDataRecord)
IsDBNull(Int32)

Belirtilen alanın null olarak ayarlanıp ayarlanmadığını döndürür.

(Devralındığı yer: IDataRecord)
NextResult()

Toplu SQL deyimlerinin sonuçlarını okurken veri okuyucuyu sonraki sonuca ilerler.

Read()

öğesini IDataReader sonraki kayda ilerler.

Şunlara uygulanır