Normalmente lo que hago para leer una tabla es utilizar un objeto SQLDataReader. Me tiene pasado en alguna aplicación la necesidad de ejecutar un Update dentro del bucle de lectura. Al estar abierto el SQLDataReader salta el error «Ya hay un DataReader abierto asociado a este comando, debe cerrarlo primero».
Para solucionarlo empleo un objeto DataTable que nos sirve igual que el DataReader. Un ejemplo de uso sería:
Dim Cmd As New SQLCommand("Select a, b, c, d from Tabla", Conexion) Dim dt As New DataTable dt.TableName = 'Tabla' dt.Load(Cmd.ExecuteReader) For Each Fila As DataRow In dt.Rows 'Ahora se puede utilizar una consulta SQL sin que dé el error del DataReader Next dt = Nothing Cmd = Nothing
Espero que le sirva a alguien. Un saludo.
Hola a mi me aparece el mismo error , ojala pudieras ayudarme este el código:
El error me lo marca señalando la linea:
Datadap.Fill(Datab)
Por tu ayuda Gracias!!!
Hora Bere,
en vez de utilizar un DataReader procura utilizar un DataTable para recorrer la consulta que necesites.
prueba con este código:
puede que te haga falta importar el espacio de nombres System.Data