Resolviendo Examen final de .NET II


Lo que se pidió en el examen de .NET II fue lo siguiente:

Se pide construir una aplicación Windows en VB.NET que permita mantener (AGREGAR y MODIFICAR) la información de los Examenes. El ID del examen debe ser generado de manera correlativa.

Su aplicación debe proveer de un módulo de consultas que le permita resolver los siguientes requerimientos de salida, a través de controles del tipo GridView:

  • R01 – Obtener los nombres de los examenes cuya hora de inicio esté dentro del intervalo [X – Y]. Los valores de X e Y deben ser ingresados por el usuario.
  • R02 – Obtener un informe que contenga el listado total de los examenes registrados, indicando el nombre del ramo, la hora de inicio y la duración (que se obtiene restando la hora de inicio a la hora de término).El informe debe respetar el siguiente formato:(NOMBRE RAMO – TIEMPO – DURACIÓN)

RESTRICCIONES

Se debe validar que los valores de las horas de inicio y fin NO ACEPTEN LETRAS NI NÚMEROS NEGATIVOS.

Además la hora de término DEBE SER MAYOR a la hora de inicio. Los examenes se inician y terminan en el mismo día.

Manos a la Obra

Comenzaremos Agregando la base de datos a SqlServer el Script será el siguiente:
<

CREATE TABLE EXAMEN
(
  ex_id INTEGER  NOT NULL  ,
  ex_nombre VARCHAR(50)    ,
  ex_horaInicio INTEGER    ,
  ex_horaFin INTEGER      ,
  PRIMARY KEY(ex_id)
);

Luego de tener creada la base de datos y con la tabla correspondiente procederemos al diseñar la ventana, no explicaré como hacerlo paso a paso pero mas menos quedó algo así :

Como se observa tenemos una ventana principal y dos que salen de ella (AGREGAR, MODIFICAR)

Explicaré solo algunas cosas para luego finalmente adjuntarle el proyecto en VS2005

Clase Examen

Public Class Examen
    Private nombre As String
    Private inicio As Integer
    Private final As Integer

    Public Sub New(ByVal nombre_ As String, ByVal inicio_ As Integer, ByVal final_ As Integer)
        If nombre_ IsNot "" Then
            Me.nombre = nombre_
        Else
            Throw New Exception("Error de Validacion")
        End If

        If inicio_ &lt; final_ And final_ &gt; inicio_ Then
            Me.inicio = inicio_
            Me.final = final_
        Else
            Throw New Exception("Error de Validacion")
        End If

    End Sub

    Public Property PNombre() As String
        Get
            Return Me.nombre
        End Get
        Set(ByVal value As String)
            Me.nombre = value
        End Set
    End Property

    Public Property PInicio() As Integer
        Get
            Return Me.inicio
        End Get
        Set(ByVal value As Integer)
            Me.inicio = value
        End Set
    End Property

    Public Property PFinal() As Integer
        Get
            Return Me.final
        End Get
        Set(ByVal value As Integer)
            Me.final = value
        End Set
    End Property
End Class

También tenemos una clase DB que está en varios de mis posteos anteriores (VB.net y SQLSERVER) clase que usamos para acceder a SqlServer de forma mas fácil y simple con tan solo hace la instancia y agregar el String de conexión:

Dim db As New DB("Data Source=PABLORUIZ-PC\SQLEXPRESS;Initial Catalog=examen_transversal;Integrated Security=True")

de esa forma podemos realizar consultas y cosas por el estilo. Las demás ventanas funcionan de la misma forma para acceder a la base de dato creada en SqlServer

Acá les adjunto el Proyecto completo para que lo prueben, tienen que solamente CAMBIAR EL STRING DE CONEXIÓN y CREAR LA BASE DE DATO EN SQL SERVER

Link de descarga: Click aquí

Consultas, opiniones, sugerencias por este medio.

Saludos!