IDataReader 接口
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供一种读取通过对数据源执行命令获取的一个或多个仅向前结果集流的方法,并由访问关系数据库的数据提供程序.NET实现。
public interface class IDataReader : IDisposable, System::Data::IDataRecord
public interface IDataReader : IDisposable, System.Data.IDataRecord
type IDataReader = interface
interface IDisposable
interface IDataRecord
type IDataReader = interface
interface IDataRecord
interface IDisposable
Public Interface IDataReader
Implements IDataRecord, IDisposable
- 派生
- 实现
示例
以下示例创建派生类、SqlConnection和SqlCommandSqlDataReader的实例。 该示例读取数据,并将其写出到控制台。 最后,该示例关闭 SqlDataReader,然后关闭 SqlConnection。
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
注解
接口IDataReaderIDataRecord允许继承类实现类DataReader,该类提供读取结果集的一个或多个仅向前流的方法。 有关类的详细信息 DataReader ,请参阅 使用 DataReader 检索数据。
应用程序不直接创建接口的 IDataReader 实例,而是创建继承 IDataReader的类的实例。
继承 IDataReader 的类必须实现继承的成员,并且通常定义其他成员以添加提供程序特定的功能。
正在读取数据时对另一个进程或线程对结果集所做的更改可能对实现 a 的 IDataReader类的用户可见。 但是,精确行为既取决于提供程序,又依赖于计时。
实施者说明
若要促进 .NET Framework 数据提供程序之间的一致性,请在 Prv 命令中命名继承类,其中 Prv是给定给特定 .NET Framework 数据提供程序命名空间中的所有类的统一前缀。 例如,Sql命名空间中SqlDataAdapter类的System.Data.SqlClient前缀。
用户不会直接创建类的 DataReader 实例。 而是通过ExecuteReader对象的方法Command获取DataReader实例。 因此,应将构造函数标记为 DataReader 内部构造函数。
属性
| 名称 | 说明 |
|---|---|
| Depth |
获取一个值,该值指示当前行的嵌套深度。 |
| FieldCount |
获取当前行中的列数。 (继承自 IDataRecord) |
| IsClosed |
获取一个值,该值指示是否关闭数据读取器。 |
| Item[Int32] |
获取位于指定索引处的列。 (继承自 IDataRecord) |
| Item[String] |
获取具有指定名称的列。 (继承自 IDataRecord) |
| RecordsAffected |
获取通过执行 SQL 语句更改、插入或删除的行数。 |