free hosting   image hosting   hosting reseller   online album   e-shop   famous people 
Free Website Templates
Free Installer

Docencia Autor

Visual Basic .NET (Trayendo datos relacionados)

Tenemos dos tablas relacionadas, las películas pueden ser de tipo comedia, drama, acción, etc..

Esta es la sentencia SQL para traer la descripción de la película

Y este es el resultado de esa consulta

Lo mismo debe hacerse en Visual Basic .NET

En el ejemplo hay estos controles gráficos:

txtCodigo, txtNombre, txtTipo, txtTipoDesc como de tipo texto
btnAtras, btnAdelante como botones

Luego hay que seguir estos pasos:

Paso 1: Se conecta a la base de datos.
Paso 2: Crea un adaptador que usa la conexión del Paso 1.
Paso 3: Llena el DataSet con el adaptador del Paso 2 trayendo automáticamente las descripciones.
Paso 4: Coloca los datos de forma visible para el usuario interrogando el DataSet.

Este es el código del botón que se conecta

'Se define una variable que tendrá la cadena de conexión
Dim sbConecta As String
sbConecta = "Provider=Microsoft.Jet.OLEDB.4.0;"

'Abre el cuadro de dialogo para buscar la base de datos
Dim sbArchivo As String
OpenFileDialog1.ShowDialog()
sbArchivo = OpenFileDialog1.FileName
sbConecta += "Data Source = " + sbArchivo

'Se declara un objeto para conectarse a la base de datos
objConexion.ConnectionString = sbConecta
Try
    objConexion.Open()
Catch objExcepcion As System.Data.OleDb.OleDbException
    MsgBox("Error al conectarse a: " + sbArchivo)
   
Exit Sub
End
Try

'La sentencia SQL para consultar las películas y sus descripciones
Dim sbSQLconsulta As String
sbSQLconsulta = "SELECT Pelicula.Codigo, Pelicula.Nombre, Pelicula.Tipo, Tipo.Nombre FROM Pelicula, Tipo WHERE Pelicula.Tipo = Tipo.Codigo"

'Relaciona el adaptador con la conexión y el comando SQL
objAdaptador.SelectCommand = New OleDbCommand(sbSQLconsulta, objConexion)
 

'Llena el objeto DataSet
objAdaptador.Fill(objConjuntoDatos)

'Muestra el primer registro en pantalla
Dim objDatoCampo As
DataRow
iPosicion = 0
objDatoCampo = objConjuntoDatos.Tables(0).Rows(iPosicion)
txtCodigo.Text = objDatoCampo(0)
txtNombre.Text = objDatoCampo(1)
txtTipo.Text = objDatoCampo(2)
txtTipoDesc.Text = objDatoCampo(3)


El botón de atrás tiene el siguiente código

'Muestra el registro anterior en pantalla
Dim objDatoCampo As DataRow
If iPosicion > 0 Then
iPosicion = iPosicion - 1
objDatoCampo = objConjuntoDatos.Tables(0).Rows(iPosicion)
txtCodigo.Text = objDatoCampo(0)
txtNombre.Text = objDatoCampo(1)
txtTipo.Text = objDatoCampo(2)
txtTipoDesc.Text = objDatoCampo(3)

El botón de adelante tiene el siguiente código

'Muestra el registro siguiente en pantalla
Dim objDatoCampo As DataRow
If iPosicion < objConjuntoDatos.Tables(0).Rows.Count - 1 Then
    iPosicion = iPosicion + 1
End
If

objDatoCampo = objConjuntoDatos.Tables(0).Rows(iPosicion)
txtCodigo.Text = objDatoCampo(0)
txtNombre.Text = objDatoCampo(1)
txtTipo.Text = objDatoCampo(2)
txtTipoDesc.Text = objDatoCampo(3)

El ejemplo esta bastante simplificado.