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