Para este ejercicio es necesario tener en cuenta que necesitamos crear una base de datos en Sql Server 2005 ya sea la versión gratis (SQL Server 2005 Express) o la de pago (SQL Server 2005 Standard.
1) Crear una base de datos llamada Prueba
2) Crear una tabla dentro de la base de datos Prueba con el nombre Coches. La estructura de la tabla es la siguiente
Nombre Campo | Tipo de Datos | Tamaño | Descripción |
Matricula | Varchar | 10 | Placa del vehículo. Corresponde al identificador de la tabla |
Marca | Varchar | 15 | Marca del vehículo |
Modelo | Varchar | 15 | Modelo del vehículo |
Kilómetros | Int | Cantidad de Kilómetros recorridos por el vehículo | |
Costo | Real | Costo por día del vehículo |
La clave primaria de la tabla será el campo Matricula.
3) Una vez creada la tabla, procedemos a llenar algunos datos para que podamos utilizarla desde Visual Basic 2008
M-2125 Toyota Yaris 70820 28
M-3150 Toyota Corolla 50453 30
M-7315 Mitsubishi Montero 15800 35
M-9817 Nissan Sentra 140782 23
Ahora el programa. Expliquemos primero que es lo que queremos hacer. Imaginemos que tenemos una empresa de alquiler de vehículos y queremos hacer una pantalla donde tengamos un combo con las marcas de los vehiculos que tenemos disponibles y queremos seleccionar del combobox una marca y que en un listbox aparezcan los vehiculos disponibles.
El formulario final sería así:
Control | Nombre |
ComboBox | cboMarca |
Button1 | btnMostrar |
Button2 | btnLimpiar |
Button3 | btnSalir |
ListBox1 | lstCoches |
Imports System.Data
Imports System.Data.SqlClient
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Definir el arreglo de marcas y asignar algunos valores
Dim aMarcas() As String = {"Mitsubishi", "Toyota", "Nissan", "Chevrolet"}
'Cargar los datos en el combobox con las marcas de los vehiculos
For i = 0 To aMarcas.Length - 1
cboMarca.Items.Add(aMarcas(i))
Next
End Sub
Private Sub btnMostrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMostrar.Click
'hay que validar primero que se ha seleccionado un valor
'en el combobox
If cboMarca.Text = "" Then
MsgBox("No ha seleccionado una marca...")
Exit Sub
End If
'Si llegamos hasta esta linea de código significa que ya habíamos
'seleccionado una marca en el combo entonces nos conectamos a la base de datos
' y sacamos la información a través de un datareader
'== Se define y abre la conexión
Dim cn As SqlConnection = New SqlConnection("Data Source=D7PPS31\SQLEXPRESS;Initial Catalog=Prueba1;Integrated Security=true")
cn.Open()
'== Se crea un comando con la sentencia SELECT, INSERT, DELETE o UPDATE a utilizar
Dim cmd As SqlCommand = New SqlCommand("SELECT * FROM Coches WHERE Marca='" & cboMarca.Text & "'", cn)
'== Se abre un datareader y se le asigna los datos que traerá el comando con sui
'== metodo EXECUTEREADER
Dim dr As SqlDataReader = cmd.ExecuteReader()
'== Se crea un ciclo WHILE utilizando el método Read del datareader que permite
'== obtener el valor verdadero o falso si lee o no datos
While dr.Read()
'Se añaden los campos que devuelve el datareader con un tabulador por medio cada
'uno. Note que los campos que son numéricos hay que usar el método ToString()
'al final para que los convierta a Texto
lstCoches.Items.Add(dr("Matricula") + vbTab + dr("Modelo") + vbTab + dr("Kilometros").ToString() + dr("Costo").ToString())
End While
'Se cierra el datareader y la conexión
dr.Close()
cn.Close()
End Sub
Private Sub btnLimpiar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLimpiar.Click
'limpia el listbox
lstCoches.Items.Clear()
End Sub
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSalir.Click
Me.Dispose()
Me.Close()
End Sub
End Class