Ejecutar consulta sql

20/09/2006 - 20:48 por Daniel | Informe spam
Hola a todos:

Estoy empezando a programar en visual basic 2005 express edition. La
cuestión es que he agregado una nueva fuente de datos (base de datos *.mdb)
y ahora quería realizar una consulta sql y recorrerla con un for. Alguien me
puede decir que tengo que hacer para realizar la conexión, para guardar en
una variable el resultado de la consulta y para recorrerla.

Puede que la pregunta sea muy chorra, pero es que no controlo esto del
acceso a datos todavía.
MUCHAS GRACIAS.

Preguntas similare

Leer las respuestas

#1 SoftJaén
20/09/2006 - 23:10 | Informe spam
"Daniel" escribió:

Estoy empezando a programar en visual basic 2005 express edition. La
cuestión es que he agregado una nueva fuente de datos (base de datos
*.mdb) y ahora quería realizar una consulta sql y recorrerla con un for.
Alguien me puede decir que tengo que hacer para realizar la conexión, para
guardar en una variable el resultado de la consulta y para recorrerla.



Hola, Daniel:

Y en lugar de ejecutar un bucle «For», para recorrer el resultado de
ejecutar la consulta SQL, ya que dices que estás empezando a programar en
Visual Basic 2005, ¿no te gustaría observar todos los registros en un
control DataGridView? Pienso que para empezar, el ejemplo que te voy a
mostrar te puede resultar instructivo.

Lo único que tienes que hacer es comenzar una nueva solución, y añadir un
control DataGridView en el formulario de inicio del proyecto. Abres la
ventana de código, pulsando la tecla de función F7, y al comienzo de la
clase Form1, importar el siguiente espacio de nombres:

Imports System.Data.OleDb

Ahora, dentro de la clase Form1, copia/pega el siguiente código. Por
supuesto, deberás modificar el valor del parámetro «Data Source» de la
cadena de conexión, para indicar la ruta donde se encuentra tu base de datos
de Access:

Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load

' Declaramos un objeto Connection, al cual le
' pasamos una cadena de conexión OleDb, para
' poder conectarnos con la base de datos de
' Access.
'
Dim cnn As New OleDbConnection( _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Mis documentos\Bd1.mdb")

' Para controlar cualquier excepción o error que se
' produzca, vamos a ejecutar todo el código dentro
' de un bloque Try ... End Try.
'
Try
' Construimos una simple consulta SQL para
' seleccionar todos los registros de nuestra
' tabla de Clientes.
'
Dim sql As String = "SELECT * FROM Clientes"

' Vamos a declarar un objeto Command, para
' ejecutar la consulta SQL de selección,
' asignándole a su constructor, el texto de
' la consulta, y el objeto Connection declarado
' anteriormente.
'
Dim cmd As New OleDbCommand(sql, cnn)

' Ahora, procedemos a crear un objeto DataAdapter,
' al cual le pasaremos en su constructor el
' comando que contiene la consulta SQl de selección.
'
' El objeto DataAdapter viene a representar el
' puente existente entre el conjunto de datos
' (DataSet) que vamos a crear, y tu base de datos
' de Access.
'
Dim da As New OleDbDataAdapter(cmd)

' Abrimos la conexión.
'
cnn.Open()

' Vamos a crear el conjunto de datos, asignándole
' el nombre del objeto DataTable que automáticamente
' se creará. En el ejemplo, este objeto DataTable
' se llamará "Clientes", pero no quiere decir
' que se tiene que llamar igual que nuestra tabla
' de Clientes. ¿OK?
'
Dim ds As New DataSet

' Rellenamos el conjunto de datos.
'
da.Fill(ds, "Clientes")

' Bueno, ya tenemos creado nuestro conjunto de datos.
' Ahora ya sólo nos queda asignáselo al control
' DataGridView, para que puedas ver en el mismo
' todos los registros de la tabla Clientes.
'
With DataGridView1
' El objeto DataSet
.DataSource = ds

' El nombre del objeto DataTable
.DataMember = "Clientes"
End With

Catch ex As Exception
' Si se ha producido cualquier excepción, el
' código pasará al bloque «Catch» para mostrar
' la descripción de la excepción.
'
MessageBox.Show(ex.Message)

Finally
' En este bloque, que siempre se ejecutará,
' cerramos la conexión abierta.
cnn.Close()
cnn = Nothing

End Try

End Sub

Si todo ha ido bien, podrás observar los datos en el control DataGridView,
tan pronto como pulses la tecla de función F5, habiendo sido capaz de crear
el código fuente necesario, en lugar de utilizar el "código enlatado" que
crean los distintos Asistentes de Visual Basic 2005, para establecer una
conexión y ejecutar una simple consulta SQL de selección.

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Respuesta Responder a este mensaje
#2 Camilo Alfonso Villa Naranjo
20/09/2006 - 23:17 | Informe spam
Hola Daniel


Lo de chorra no importa... al fin y al cabo todos los dias hay discipulos
nuevos en este cuento... la respuesta a tu cuestionamiento es la siguiente:


Para conectarte con una Base de datos MDB (que por lo demas se ve que es de
Access) utilizas OLEDBConnection.

Por ende lo que tienes que estudiar son las clases del Namespace
System.Data.OleDbClient

te recomiendo que leas los siguientes links:

http://visualbasic.about.com/od/lea...41203a.htm
http://visualbasic.about.com/od/lea...50303b.htm

Te servirán de mucha ayuda, ademas indaga en la MSDN Online sobre el
Namespace que te comento...

OleDbConnection = Manejar Conexion
OleDbCommand = Manejar lo referente a consultas o procedimientos almacenados
OleDbDataAdapter = La representacion de la Tabla en Memoria
OleDbDataColumn = una Columna de la Tabla
OleDbDataRow = una Fila de la Tabla...

Y mas o menos lo que tienes que hacer, visto en pseudo código (Enseña a
Pescar, no des el Pescado)...

Establecer Conexion a Base de Datos(OLEDBConnection).
Crear Variable que contendrá la sentencia select (OleDbCommand)
Abrir Conexion
Llenar el DataSet
luego por cada Fila (OleDbDataRow) en DataSet.Tables(0)
Haz lo que necesitas hacer...
Finaliza iteracion
Cerrar Conexion


Por lo menos ya tienes un punto de partida... si tienes otra duda... con
gusto la atenderemos... para eso estamos todos aca...

Saludos



Camilo Alfonso Villa N.
Lider y Cofundador Alianzadev.net (http://www.alianzadev-fenix.net)
Microsoft Certified Professional
(Windows & Web Applications)



"Daniel" escribió en el mensaje
news:%
Hola a todos:

Estoy empezando a programar en visual basic 2005 express edition. La
cuestión es que he agregado una nueva fuente de datos (base de datos
*.mdb) y ahora quería realizar una consulta sql y recorrerla con un for.
Alguien me puede decir que tengo que hacer para realizar la conexión, para
guardar en una variable el resultado de la consulta y para recorrerla.

Puede que la pregunta sea muy chorra, pero es que no controlo esto del
acceso a datos todavía.
MUCHAS GRACIAS.

Respuesta Responder a este mensaje
#3 Jesús López
21/09/2006 - 00:37 | Informe spam
Aparte del modelo "desconectado" (DataAdapter + DataSet) que ha usado
Enrique, puede usarse el modelo "conectado" (Command + DataReader). Aquí
tienes un ejemplo de código:

Imports System.Data
Imports System.Data.Common
Imports System.Data.OleDb

...

Using cn As New OleDbConnection("cadena de conexión") , _
cmd As DbCommand = cn.CreateCommand()

cmd.CommandText = "SELECT * FROM Clientes"
cn.Open()

Using DbDataReader reader = cmd.ExecuteReader()
Do While reader.Read()
Console.WriteLine("IdCliente: {0}", reader("IdCliente"))
Console.WriteLine("NombreCliente: {0}", reader("NombreCliente"))
Loop
End Using

End Using


Nota: he escrito este código de memoria, directamente en el OE, no sería de
extrañar que hubiera algún error.

Saludos:

Jesús López



"Daniel" escribió en el mensaje
news:%
Hola a todos:

Estoy empezando a programar en visual basic 2005 express edition. La
cuestión es que he agregado una nueva fuente de datos (base de datos
*.mdb) y ahora quería realizar una consulta sql y recorrerla con un for.
Alguien me puede decir que tengo que hacer para realizar la conexión, para
guardar en una variable el resultado de la consulta y para recorrerla.

Puede que la pregunta sea muy chorra, pero es que no controlo esto del
acceso a datos todavía.
MUCHAS GRACIAS.

Respuesta Responder a este mensaje
#4 Daniel
21/09/2006 - 00:55 | Informe spam
Muchísimas gracias a los 3 por haberme respondido con tanta información, tan
elaborada y con tanta agilidad.
Sigo con ganas renovadas al ver el punto de apoyo que encuentro aquí.

MUCHAS GRACIAS.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida