Click here to Skip to main content
15,851,915 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
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..

1 solution

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.
Share this answer
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)

CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900