Re: confusion on interface IDataReader

Joe Mayo <[email protected]>
Newsgroups gmane.comp.windows.devel.dotnet.cx
Message-ID <010701c689a9$b6a828f0$0205a8c0@denver>
Hi Peter,

SqlCommand.ExecuteReader will return a SqlDataReader.  Since SqlDataReader
implements the IDataReader interface, it can be assigned to a variable of
the IDataReader interface type, but it is still a SqlDataReader.

Joe
http://www.csharp-station.com

> -----Original Message-----
> From: Discussion relating to the specifics of the C# and Managed C++
> languages [mailto:[email protected]] On Behalf Of Peter Osucha
> Sent: Tuesday, June 06, 2006 2:33 PM
> To: [email protected]
> Subject: [DOTNET-CX] confusion on interface IDataReader
>
> I was looking over some example code that was handling data access to a
> SQL
> db.  A method for the code was similar to....
>
> public IDataReader PerformStoredProcedure_DataReader ( string spName,
> CommandBehavior behavior )
> {
>     IDataReader result = null;
>     SqlCommand cmd = new SqlCommand ( spName, (SqlConnection)Connection );
>     cmd.CommandType = CommandType.StoredProcedure;
>     result = cmd.ExecuteReader ( behavior );
>     return result;
> }
>
> Now what has me confused is that this method returns an object of type
> IDataReader - which I thought (from reviewing MSDN) was not allowed since
> IDataReader is an interface (ie, I thought such a method could return an
> object that implemented IDataReader but not an instance of an IDataReader
> object itself since there really wasn't any such thing as an IDataReader
> object).  IOW, it seems that there should be no problem returning an
> object
> of, say, type SqlDataReader from this method.
>
> I'm obviously not understanding something.  Why is it allowed to return on
> object of type IDataReader here?
>
> Peter
>
> ===================================
> This list is hosted by DevelopMentor.  http://www.develop.com
>
> View archives and manage your subscription(s) at
> http://discuss.develop.com

===================================
This list is hosted by DevelopMentor®  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.