There is no RecordCount property when yo use the OleDbDataReader class or the SqlDataReader class in Visual Basic .NET (308050)
The information in this article applies to:
- Microsoft ADO.NET (included with the .NET Framework)
- Microsoft Visual Basic .NET (2002)
- Microsoft ADO.Net 2.0
This article was previously published under Q308050
For a Microsoft Visual C# .NET version of this article, see 308352.
This article refers to the following Microsoft .NET Framework Class Library namespace:
SYMPTOMS
When using the OleDbDataReader or SqlDataReader class, there is no RecordCount property to tell how many records are being fetched.
CAUSE
The DataReader object (or even the back-end data source) doesn't typically know how many records are being fetched until the last one is sent to the client. Even an ActiveX Data Objects (ADO) Recordset returns -1 for RecordCount when retrieving data using a forward-only cursor. DataReader exhibits similar behavior because it uses a forward-only cursor for retrieving rows and columns.
RESOLUTION
You can work around this problem in the following ways:
- Count the records as you go through the reader.
- Run a SELECT COUNT(*) query first (although this may be out of date by the time you finish reading data).
STATUSThis behavior is by design.REFERENCESFor additional information, click the article number below
to view the article in the Microsoft Knowledge Base:
194973 PRB: ADO: Recordcount May Return -1
Modification Type: | Minor | Last Reviewed: | 3/9/2006 |
---|
Keywords: | kbnofix kbprb kbSqlClient kbSystemData KB308050 |
---|
|