tienes toda la razon lo q si me doy cuenta es q haces un loop ( y me doy cuenta hasta ahora) para poder hacer eso que quieres necesitaras hacer esto que se llama MARS (solo disponible en ado.net 2.0 y si no me equivoco para sqlserver)
http://www.devx.com/dbzone/Article/30132
pero lo que tu puedes hacer es:
1.- eliminar esa linea que te dije de consulta.close no va
2.- Crear otra conexion oConn2 (identica a oConn) y usarla en el comando del update.
y con eso se resolvera el problema.