Posteado por: toniogago | 31 diciembre 2010

Ya hay un DataReader abierto asociado a este comando, debe cerrarlo primero

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.

Advertisement

Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s

Categorías

Seguir

Get every new post delivered to your Inbox.