Soy bastante nuevo en la parte de programar con VB.NET, he tenido que crear un pequeño programa para hacer consultas a varias tablas que estan relacionadas con una tabla padre, En mi Ignorancia he hecho lo siguiente:
Código:
' Tengo una variable de conexion en los settings que contiene el string ' de conexion a la BD donde se encuentran todas las tablas. Dim con As New Data.SqlClient.SqlConnection(My.Settings.CNSQLSERVER) Dim con1 As New Data.SqlClient.SqlConnection(My.Settings.CNSQLSERVER) Dim con2 As New Data.SqlClient.SqlConnection(My.Settings.CNSQLSERVER) Dim comm As New Data.SqlClient.SqlCommand Dim comm1 As New Data.SqlClient.SqlCommand Dim comm2 As New Data.SqlClient.SqlCommand Dim reader As Data.SqlClient.SqlDataReader Dim reader1 As Data.SqlClient.SqlDataReader Dim reader2 As Data.SqlClient.SqlDataReader Dim sqltext = "select * from ATENCIONESCLIENTE" Try con.Open() comm = New SqlClient.SqlCommand(sqltext, con) reader = comm.ExecuteReader If reader.HasRows Then Do While reader.Read Dim sqltex1 = "select nombreSucursal from SUCURSALES where codigoSucursal=" + reader("codigoSucursal").ToString Dim sqltex2 = "select nombreProyecto from PROYECTOS where codigoProyecto=" + reader("codigoProyecto").ToString Try con1.Open() con2.Open() comm1 = New SqlClient.SqlCommand(sqltex1, con1) comm2 = New SqlClient.SqlCommand(sqltex2, con2) ' y asi sucesivamente hasta tener en cada uno de los reader los datos de cada ' una de las tablas consultadas.
Se que esta muy mal hecho(imagino) de esta manera, pero no conozco ni encuento la manera de utilizar la misma conexion y el mismo command, reader..etc(si es que se pueden utilizar los mismos.
Trate de utilizar la misma conexion, pero al ingresar al do while me dice que ya hay una conexion abierta.
Si alguien puede echarme una mano se los agradeceria y me aclare la mejor forma de poder hacerlo.
Saludos,
JARS