viernes, 14 de agosto de 2009

Obtener multiples resultados en ADO.NET

Para poder obtener multiples resultados de consultas SQL en una sola operacion se debe tener en cuenta usar el objeto SqlDataReader. Esta es la forma mas practica de poder ejecutar varias sentencias SQL al mismo tiempo y poder recibirlas con un objeto SqlDataReader.

Aqui se muestra como ejecutar y recuperar el resultados de 3 consultas SQL.
Private Sub MultipleQuery()

Dim sqlCnn As New SqlConnection("Data Source=ServerName;Initial Catalog=DatabaseName;User ID=UserName;Password=Password")
Dim sqlCmd As SqlCommand

'Definimos las 3 sentencias SQL solamente separandolas con ";"
Dim sql As String = "Select top 2 * from product; " & _
"select top 2 * from ordermaster; " & _
"select top 2 * from orderdetails"

Try
'Abrimos la Conexion
sqlCnn.Open()

'Configuramos el Comando con la conexion y la Sentencia SQL
sqlCmd = New SqlCommand(sql, sqlCnn)

'Ejecutamos el Comando y el resultado se lo asignamos a un sqlDataReader
Dim sqlReader As SqlDataReader = sqlCmd.ExecuteReader()

'Recorremos el primer resultado de "Select top 2 * from product"
While sqlReader.Read()
MsgBox("Primer SQL - " & sqlReader.Item(0) & " - " & sqlReader.Item(1))
End While

'Cambiamos al siguiente resultado SQL
sqlReader.NextResult()

'Recorremos el segundo resultado de "Select top 2 * from ordermaster"
While sqlReader.Read()
MsgBox("Segundo SQL - " & sqlReader.Item(0) & " - " & sqlReader.Item(1))
End While

'Cambiamos al siguiente resultado SQL
sqlReader.NextResult()

'Recorremos el tercer resultado de "Select top 2 * from orderdetails"
While sqlReader.Read()
MsgBox("Tercer SQL - " & sqlReader.Item(0) & " - " & sqlReader.Item(1))
End While

sqlReader.Close()
sqlCmd.Dispose()
sqlCnn.Close()

Catch ex As Exception
MsgBox("No se puedo ejecutar la operacion")
End Try

End Sub
Aqui el enlace original: Link Referencial

No hay comentarios: