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 okuyup konsola yazar. Son olarak, örnek öğesini ve ardından öğesini SqlConnectionkapatırSqlDataReader.

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

Imports System.Data
Imports System.Data.SqlClient

Module Module1

    Sub Main()
        Dim str As String = "Data Source=(local);Initial Catalog=Northwind;" _
       & "Integrated Security=SSPI;"
        ReadOrderData(str)
    End Sub

    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

End Module

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 arabiriminin IDataRecord bir örneğini oluşturmaz, ancak devralan IDataRecordbir sınıfın örneğini oluşturur. Genellikle, nesnesinin ExecuteReader yöntemi Command aracılığıyla bir DataReader alarak bunu yaparsınız.

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

bir DataReader uygulayan 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. Örnek olarak, aşağıdaki tabloda OLE DB veri türlerinden CLR türlerine önerilen eşlemeler ve parantez içinde alternatif türler listelenmiştir.

OLE DB türü CLR türü
DBTYPE_BOOL Int16
DBTYPE_BSTR string
DBTYPE_BYTES bayt[]
DBTYPE_CY Ondalık
DBTYPE_DATE DateTime
DBTYPE_DBDATE DateTime
DBTYPE_DBTIME DateTime
DBTYPE_DBTIMESTAMP DateTime
DBTYPE_DECIMAL Ondalık
DBTYPE_EMPTY null
DBTYPE_ERROR Externalexception
DBTYPE_FILETIME DateTime
DBTYPE_GUID Guid
DBTYPE_HCHAPTER desteklenmiyor
DBTYPE_I1 SByte
DBTYPE_I2 Int16
DBTYPE_I4 Int32
DBTYPE_I8 Int64
DBTYPE_IDISPATCH object
DBTYPE_IUNKNOWN object
DBTYPE_NULL Dbnull
DBTYPE_NUMERIC Ondalık
DBTYPE_PROPVARIANT object
DBTYPE_R4 Tek
DBTYPE_R8 Çift
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 object
DBTYPE_VARNUMERIC desteklenmiyor
DBTYPE_WSTR string

Özellikler

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

GetBoolean(Int32)

Belirtilen sütunun değerini Boole değeri 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 dizi olarak bayt akışını 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 GetValue(Int32)döndürülecek türüne Object karşılık gelen bilgileri alır.

GetFloat(Int32)

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

GetGuid(Int32)

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

GetInt16(Int32)

Belirtilen alanın 16 bit işaretli tamsayı değerini alır.

GetInt32(Int32)

Belirtilen alanın 32 bit işaretli tamsayı değerini alır.

GetInt64(Int32)

Belirtilen alanın 64 bit işaretli 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