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