miércoles, 7 de abril de 2010

Solución Examen Programación II - ADO .NET

A continuación la solución del Examen de Programación II (Segundo Parcial).  Básicamente la idea era desarrollar un formulario con un ComboBox, un ListBox, un TextBox y dos Buttons, uno para mostrar la información y otro para salir del programa.

El formulario podría haber lucido de esta forma

El código se muestra a continuación y el proyecto completo se puede bajar haciendo click aqui. Recuerden cambiar el nombre del servidor en la cadena de conexión.-

Imports System.Data
Imports System.Data.SqlClient

Public Class Form1
    'Declarar el objeto conexión a este nivel permite que funcione en cualquier procedimiento
    'del formulario
    Dim cn As SqlConnection

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Inicializar el objeto conexión
        cn = New SqlConnection()

        'Crear la cadena de conexión asignarla al objeto conexión y abrir la conexión
        Dim sConexion As String
        sConexion = "Data Source=D7PPS31\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=true"
        cn.ConnectionString = sConexion
        cn.Open()

        'Cargar el combo con los Id de los Empleados
        Dim cmd As SqlCommand = New SqlCommand("SELECT EmployeeID FROM Employees ORDER BY EmployeeID", cn)

        'Crear un datareader y llenarlo con el método executereader del objeto command
        Dim drd As SqlDataReader = cmd.ExecuteReader()

        'Con un ciclo cargar los datos en el combo
        While drd.Read()
            ComboBox1.Items.Add(drd("EmployeeID"))
        End While

        'Cerrar el datareader
        drd.Close()

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'Mostrar los datos
        'Una vez seleccionado un dato del ComboBox, se muestran los datos

        'Se puede validar que se haya seleccionado algo en el ComboBox
        If ComboBox1.Text = "" Then
            MessageBox.Show("Debe seleccionar un ID de Empleado del Combo...")
            Exit Sub
        End If

        Dim cmd As SqlCommand = New SqlCommand("SELECT FirstName + ' ' + LastName as Nombre FROM Employees WHERE EmployeeID='" & ComboBox1.Text & "'", cn)
        'Se puede asignar directamente el valor al cuadro de texto destinado para el nombre
        'del empleado usando el método ExecuteScalar, ya que solo se espera un valor
        TextBox1.Text = cmd.ExecuteScalar()

        'Ahora buscar todas las ordenes de pedido en la tabla ORDERS y mostrarlas en el ListBox
        cmd = New SqlCommand("SELECT * FROM Orders WHERE EmployeeID ='" & ComboBox1.Text & "'", cn)
        Dim drd As SqlDataReader = cmd.ExecuteReader()

        ListBox1.Items.Clear()
        While drd.Read
            ListBox1.Items.Add(drd("EmployeeID").ToString + vbTab + drd("OrderID").ToString + vbTab + drd("OrderDate").ToString + vbTab + drd("ShipAddress"))
        End While

        'Cerrar el DataReader
        drd.Close()


    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        'Salir del programa, se cierra el formulario actual y se finaliza
        Me.Close()
        End
    End Sub
End Class

No hay comentarios:

Publicar un comentario