Search VB 2010

Showing posts with label DataReader. Show all posts
Showing posts with label DataReader. Show all posts

Friday, December 09, 2011

Solution - There is already an open DataReader associated with this Command which must be closed first.

VB 2010

Problem : There is already an open DataReader associated with this Command which must be closed first.
Cause : Having more than 1 dataReader result set working at the same time .
Solution : In my solution example, i work with SqlServer2000 and VB.Net 2005 
The Example Project can be downloaded at the end of this post :
It contains (SqlServer2000 DataBase - VB.Net Project)
The example shows how to navigate (First Record - Next Record) using ADO.Net 2.0 Online-Mode using SqlClient DataReader ...
Sql Database Name : Market
Sql Database Table : Market.Info
Server Name : evry1falls
(in order to see the example correctly, you'll have to Import the Database 'Market' into your sqlserver2000 Enterprise Manager)
Photo1 : Application Final Design
Photo 1












Photo2 : Table Structure
Photo 2







Photo3 : Codes
Photo 3






Photo4 : Codes
Photo 4







Photo5 : Codes
Photo 5








Now if you run the project and tried to navigate using (First) or (Next) you will get the Exception :
There is already an open DataReader .....
so the solution would be :
Trap the Exception that shows in the (SelectedIndexChanged) Event of the (ComboBox) like this :

and the same for the (Next) Button ..
now you can Navigate and search using combobox safely without exceptions ..

Note :
- Source code will give you exception and you will have to re-write the solution by yourself  as shown above .
- The Folder(Bin/Debug) Includes (Back-Up) use it to restore the (Market Database) in your sqlserver2000
- use the namespace (evry1falls) as new server Registration .

Download Source Code : MediaFire Link

Using MS Access 2003/2007/2010

- In case of using Microsoft Access Database, OleDb.OleDbDataReader with OleDb.OleDbCommand.

The work around or the solution would be :
Always create a new Instance of the OleDbCommand, I.e

Visual Basic Courses - Share