本文由机器翻译。若要查看英语原文,请勾选“英语”复选框。 也可将鼠标指针移到文本上,在弹出窗口中显示英语原文。
翻译
英语

IDataReader 接口

 

提供一种读取结果集(通过对数据源执行命令获取)的一个或多个只进流的方法,并由访问关系数据库的.NET Framework 数据提供程序实现。

命名空间:   System.Data
程序集:  System.Data(位于 System.Data.dll)

public interface IDataReader : IDisposable, IDataRecord

名称说明
System_CAPS_pubpropertyDepth

获取一个值,该值指示当前行的嵌套深度。

System_CAPS_pubpropertyFieldCount

获取当前行中的列数。(继承自 IDataRecord。)

System_CAPS_pubpropertyIsClosed

获取一个值,该值指示数据读取器是否已关闭。

System_CAPS_pubpropertyItem[Int32]

获取位于指定索引处的列。(继承自 IDataRecord。)

System_CAPS_pubpropertyItem[String]

获取具有指定名称的列。(继承自 IDataRecord。)

System_CAPS_pubpropertyRecordsAffected

获取通过执行 SQL 语句更改、插入或删除的行数。

名称说明
System_CAPS_pubmethodClose()

关闭 IDataReader 对象。

System_CAPS_pubmethodDispose()

执行与释放或重置非托管资源关联的应用程序定义的任务。(继承自 IDisposable。)

System_CAPS_pubmethodGetBoolean(Int32)

以布尔值的形式获取指定列的值。(继承自 IDataRecord。)

System_CAPS_pubmethodGetByte(Int32)

获取指定列的 8 位无符号整数值。(继承自 IDataRecord。)

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

将字节流从指定列偏移量读入到缓冲区中,将其作为从给定缓冲区偏移量开始的数组。(继承自 IDataRecord。)

System_CAPS_pubmethodGetChar(Int32)

获取指定列的字符值。(继承自 IDataRecord。)

System_CAPS_pubmethodGetChars(Int32, Int64, Char[], Int32, Int32)

将字符流从指定列偏移量读入到缓冲区中,将其作为从给定缓冲区偏移量开始的数组。(继承自 IDataRecord。)

System_CAPS_pubmethodGetData(Int32)

返回指定列序号的 IDataReader(继承自 IDataRecord。)

System_CAPS_pubmethodGetDataTypeName(Int32)

获取指定字段的数据类型信息。(继承自 IDataRecord。)

System_CAPS_pubmethodGetDateTime(Int32)

获取指定字段的日期和时间数据值。(继承自 IDataRecord。)

System_CAPS_pubmethodGetDecimal(Int32)

获取指定字段的固定位置数值。(继承自 IDataRecord。)

System_CAPS_pubmethodGetDouble(Int32)

获取指定字段的双精度浮点数。(继承自 IDataRecord。)

System_CAPS_pubmethodGetFieldType(Int32)

获取对应于会从 GetValue 返回的 Object 类型的 Type 信息。(继承自 IDataRecord。)

System_CAPS_pubmethodGetFloat(Int32)

获取指定字段的单精度浮点数。(继承自 IDataRecord。)

System_CAPS_pubmethodGetGuid(Int32)

返回指定字段的 GUID 值。(继承自 IDataRecord。)

System_CAPS_pubmethodGetInt16(Int32)

获取指定字段的 16 位带符号整数值。(继承自 IDataRecord。)

System_CAPS_pubmethodGetInt32(Int32)

获取指定字段的 32 位带符号整数值。(继承自 IDataRecord。)

System_CAPS_pubmethodGetInt64(Int32)

获取指定字段的 64 位带符号整数值。(继承自 IDataRecord。)

System_CAPS_pubmethodGetName(Int32)

获取要查找的字段的名称。(继承自 IDataRecord。)

System_CAPS_pubmethodGetOrdinal(String)

返回已命名字段的索引。(继承自 IDataRecord。)

System_CAPS_pubmethodGetSchemaTable()

返回一个描述 DataTable 的列元数据的 IDataReader

System_CAPS_pubmethodGetString(Int32)

获取指定字段的字符串值。(继承自 IDataRecord。)

System_CAPS_pubmethodGetValue(Int32)

返回指定字段的值。(继承自 IDataRecord。)

System_CAPS_pubmethodGetValues(Object[])

使用当前记录的列值填充对象的数组。(继承自 IDataRecord。)

System_CAPS_pubmethodIsDBNull(Int32)

返回指定字段是否设置为 null。(继承自 IDataRecord。)

System_CAPS_pubmethodNextResult()

在读取一批 SQL 语句的结果时,使数据读取器前进到下一个结果。

System_CAPS_pubmethodRead()

IDataReader 前进到下一条记录。

IDataReaderIDataRecord接口允许继承类实现DataReader类,该类提供一种读取一个或多个结果集只进流。 有关 DataReader 类的更多信息,请参见使用 DataReader 检索数据

应用程序不会创建的实例IDataReader接口直接,但创建继承的类的实例IDataReader

继承的类IDataReader必须实现继承的成员,且通常定义其他成员来添加提供程序特定的功能。

更改的结果集由另一个进程或线程的类实现的用户都能够看到在读取数据时IDataReader 但是,确切的行为是提供程序和取决于执行时间。

实现函数说明:

若要提升.NET Framework 数据提供程序之间的一致性,将窗体中的继承类Prv命令,其中Prv是为特定的.NET Framework 数据提供程序命名空间中的所有类提供的统一前缀。 例如,Sql的前缀SqlDataAdapterSystem.Data.SqlClient命名空间。

用户未创建的实例DataReader类直接。 相反,它们获得DataReader实例通过ExecuteReader方法Command对象。 因此,你应将标记DataReader为内部的构造函数。

下面的示例创建的派生类的实例SqlConnectionSqlCommand,和SqlDataReader 该示例读取到的数据,写出到控制台。 最后,该示例关闭SqlDataReader,则SqlConnection

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

}

.NET Framework
自 1.1 起可用
返回页首
显示: