Click here to Skip to main content
11,925,896 members (64,525 online)
Rate this:
Please Sign up or sign in to vote.
See more: C# VB SQL-Server VB.NET
Dim fcs As String
        fcs = "select fname,dept from nstudent where stid = '" & txt_sid.Text & "'"
        scmd1 = New SqlCommand(fcs, con)
        dr = scmd1.ExecuteReader
        Dim n As Byte
        n = dr.Read
        If (n > 0) Then
            txt_sname.Text = dr.Item(0)
            cmb_dept.Text = dr.Item(1)
            MsgBox("Not Found")
        End If
        If Not dr.IsClosed Then dr.Close()
The above code i have used. if the given input is present it returning otherwise the program exit and displaying the following error.

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

pls anyone give the solution..
Posted 14-Mar-13 10:38am

1 solution

Rate this: bad
Please Sign up or sign in to vote.

Solution 1

From what you have posted, it looks like you are not disposing of scmd1,

If you dispose of this after you close the datareader it might solve your problem.
Marco Bertschi 14-Mar-13 16:18pm
It could also be that he does not close the datareader dr and then the datareader stays open and can't be used to execute another command.

Marco Bertschi
Pheonyx 14-Mar-13 16:24pm
From his code example he is closing it:

If Not dr.IsClosed Then dr.Close()
Marco Bertschi 14-Mar-13 16:27pm
Whoops, I overviewed this one - Nevermind.

Marco Bertschi

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Top Experts
Last 24hrsThis month

Advertise | Privacy | Mobile
Web04 | 2.8.151126.1 | Last Updated 14 Mar 2013
Copyright © CodeProject, 1999-2015
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100