IDataRecord 接口

使 DataReader 能访问每一行中的列值,由访问关系数据库的 .NET Framework 数据提供程序实现。

**命名空间:**System.Data
**程序集:**System.Data(在 system.data.dll 中)

语法

声明
Public Interface IDataRecord
用法
Dim instance As IDataRecord
public interface IDataRecord
public interface class IDataRecord
public interface IDataRecord
public interface IDataRecord

备注

IDataReaderIDataRecord 接口可使继承类实现 DataReader 类。这样就提供了读取一个或多个结果集只进流的方法。有关 DataReader 类的更多信息,请参见 使用 DataReader 检索数据。有关如何实现 .NET Framework 数据提供程序的更多信息,请参见 Implementing a .NET Framework Data Provider

应用程序不直接创建 IDataRecord 接口的实例,而是创建继承 IDataRecord 的类的实例。通常,这是通过 Command 对象的 ExecuteReader 方法获取 DataReader 来实现的。

继承 IDataRecord 的类必须实现所有继承成员,且通常定义更多的成员,以添加提供程序特定的功能。

要求实现 DataReader 的提供程序公开公共语言运行库 (CLR) 类型的数据。为某些不包括在 CLR 中的类型定义了类型强制。这些值可以作为符合 CLR 类型的替换类型访问。作为一个示例,下表列出了从 OLE DB 数据类型到 CLR 类型的建议映射,并且在“CLR 类型”列中在括号内列出了替换类型。

OLE DB 类型

CLR 类型

DBTYPE_BOOL

Int16

DBTYPE_BSTR

string

DBTYPE_BYTES

byte[]

DBTYPE_CY

Decimal

DBTYPE_DATE

DateTime

DBTYPE_DBDATE

DateTime

DBTYPE_DBTIME

DateTime

DBTYPE_DBTIMESTAMP

DateTime

DBTYPE_DECIMAL

Decimal

DBTYPE_EMPTY

DBTYPE_ERROR

ExternalException

DBTYPE_FILETIME

DateTime

DBTYPE_GUID

Guid

DBTYPE_HCHAPTER

不受支持

DBTYPE_I1

SByte

DBTYPE_I2

Int16

DBTYPE_I4

Int32

DBTYPE_I8

Int64

DBTYPE_IDISPATCH

object

DBTYPE_IUNKNOWN

object

DBTYPE_NULL

DBNull.Value

DBTYPE_NUMERIC

Decimal

DBTYPE_PROPVARIANT

object

DBTYPE_R4

Single

DBTYPE_R8

Double

DBTYPE_STR

string

DBTYPE_UDT

不受支持

DBTYPE_UI1

byte (Int16)

DBTYPE_UI2

UInt16 (Int32)

DBTYPE_UI4

UInt32 (Int64)

DBTYPE_UI8

UInt64 (Decimal)

DBTYPE_VARIANT

object

DBTYPE_VARNUMERIC

不受支持

DBTYPE_WSTR

string

示例

下面的示例创建派生类 SqlConnectionSqlCommandSqlDataReader 的实例。该示例读取全部数据,并将这些数据写到控制台。最后,该示例先关闭 SqlDataReader,然后关闭 SqlConnection

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
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();
    }
}

平台

Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

.NET Compact Framework

受以下版本支持:2.0、1.0

请参见

参考

IDataRecord 成员
System.Data 命名空间