IDataReader Interface

Provides a means of reading one or more forward-only streams of result sets obtained by executing a command at a data source, and is implemented by Reporting Services Data Processing Extensions that access relational databases.

Namespace:  Microsoft.ReportingServices.DataProcessing
Assemblies:   Microsoft.ReportingServices.Interfaces (in Microsoft.ReportingServices.Interfaces.dll)
  Microsoft.ReportingServices.SharePoint.UI.WebParts (in Microsoft.ReportingServices.SharePoint.UI.WebParts.dll)

public interface IDataReader : IDisposable

The IDataReader type exposes the following members.

Public propertyFieldCountGets the number of fields in the data reader.

Public methodDispose (Inherited from IDisposable.)
Public methodGetFieldTypeGets the Type information corresponding to the type of object that is returned from GetValue.
Public methodGetNameGets the name of the field to find.
Public methodGetOrdinalReturn the index of the named field.
Public methodGetValueReturn the value of the specified field.
Public methodReadAdvances the IDataReader to the next record.

The IDataReader interface enables you to implement a DataReader class, which provides a means of reading one or more forward-only streams of result sets. For more information about DataReader classes, see Implementing a DataReader Class for a Data Processing Extension.

An application does not create an instance of the IDataReader interface directly, but creates an instance of a class that implements IDataReader.

Classes that implement IDataReader must also implement the required members, and typically define additional members to add provider-specific functionality.

Changes made to a result set by another process or thread while data is being read may be visible to the user of a class that implements an IDataReader. However, the precise behavior is both provider and timing dependent.

Users do not create an instance of a DataReader class directly. Instead, they obtain the DataReader through the ExecuteReader method of the Command object. Therefore, you should mark DataReader constructors as internal.

Community Additions