IDataRecord Arabirim

Tanım

için DataReaderher satırdaki sütun değerlerine erişim sağlar ve ilişkisel veritabanlarına erişen .NET veri sağlayıcıları tarafından uygulanır.

public interface class IDataRecord
public interface IDataRecord
type IDataRecord = interface
Public Interface IDataRecord
Türetilmiş

Örnekler

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

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 tanır. Bu, sonuç kümelerinin yalnızca ileriye doğru bir veya daha fazla akışını okumanın bir yolunu sağlar. Sınıflar hakkında DataReader daha fazla bilgi için bkz. DataReader Kullanarak Veri Alma.

Uygulama doğrudan arabirimin IDataRecord bir örneğini oluşturmaz, ancak devralan IDataRecordbir sınıfın örneğini oluşturur. Bunu genellikle nesnesinin DataReader yöntemi ExecuteReader aracılığıyla bir Command elde ederek yaparsınız.

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

uygulayan DataReader sağlayıcıların ortak dil çalışma zamanı (CLR) türlerindeki verileri kullanıma sunmaları gerekir. CLR'ye dahil olmayan bazı türler için tür zorlaması tanımlanır. Bu değerlere CLR türleriyle uyumlu alternatif türler olarak erişilebilir. Örneğin, aşağıdaki tabloda OLE DB veri türlerinden CLR türlerine önerilen eşlemeler ve alternatif türler parantez içinde listelenmiştir.

OLE DB türü CLR türü
DBTYPE_BOOL Int16
DBTYPE_BSTR String
DBTYPE_BYTES byte[]
DBTYPE_CY Decimal
DBTYPE_TARİH DateTime
DBTYPE_DBDATE DateTime
DBTYPE_DBTIME DateTime
DBTYPE_DBTIMESTAMP DateTime
DBTYPE_DECIMAL Decimal
DBTYPE_EMPTY sıfır
DBTYPE_ERROR ExternalException (Harici İstisna)
DBTYPE_FILETIME DateTime
DBTYPE_GUID (Evrensel Tekil Tanımlayıcı Türü) Kılavuz
DBTYPE_HCHAPTER desteklenmiyor
DBTYPE_I1 SByte
DBTYPE_I2 Int16
DBTYPE_I4 Int32
DBTYPE_I8 Int64
DBTYPE_IDISPATCH Obje
DBTYPE_IUNKNOWN Obje
DBTYPE_NULL Dbnull
DBTYPE_NUMERIC Decimal
DBTYPE_PROPVARIANT Obje
DBTYPE_R4 Single
DBTYPE_R8 Double
DBTYPE_STR String
DBTYPE_UDT desteklenmiyor
DBTYPE_UI1 bayt (Int16)
DBTYPE_UI2 UInt16 (Int32)
DBTYPE_UI4 UInt32 (Int64)
DBTYPE_UI8 UInt64 (Ondalık)
DBTYPE_VARIANT Obje
DBTYPE_VARNUMERIC desteklenmiyor
DBTYPE_WSTR String

Özellikler

Name Description
FieldCount

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

Item[Int32]

Belirtilen dizinde bulunan sütunu alır.

Item[String]

Belirtilen ada sahip sütunu alır.

Yöntemler

Name Description
GetBoolean(Int32)

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

GetByte(Int32)

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

GetBytes(Int32, Int64, Byte[], Int32, Int32)

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

GetChar(Int32)

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

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.

GetData(Int32)

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

GetDataTypeName(Int32)

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

GetDateTime(Int32)

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

GetDecimal(Int32)

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

GetDouble(Int32)

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

GetFieldType(Int32)

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

GetFloat(Int32)

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

GetGuid(Int32)

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

GetInt16(Int32)

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

GetInt32(Int32)

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

GetInt64(Int32)

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

GetName(Int32)

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

GetOrdinal(String)

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

GetString(Int32)

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

GetValue(Int32)

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

GetValues(Object[])

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

IsDBNull(Int32)

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

Şunlara uygulanır