En esta oportunidad voy a presentar el desarrollo de la pregunta Nº 1 del examen final del curso de Lenguaje de Programación Visual (4to. Ciclo). El desarrollo ha sido resuelto en Visual Basic. Net 2010. El enunciado es el siguiente:
- Crear una base de datos con la tabla Alumnos(codalu, nomalu, apealu, edad, ciclo, turno, sexo). Ingresar 10 alumnos y diseñar un formulario que permita ingresar dos edades y visualizar en un ListView el nombre, apellido, ciclo y edad de los alumnos cuya edad este comprendida entre las edades ingresadas.
1. Ingresar al SQL Server y crear la base de datos de nombre Universidad con la tabla Alumnos. El script para crearlo es el siguiente:
Create
database Universidad;
Go
use
universidad;
Go
create
table Alumnos
(codalu
int,
nomalu
varchar (25),
apealu
varchar (25),
edad
int,
ciclo
int,
turno
char (1),
sexo
char (1),
carrera
varchar(35)
Go
Insert
into Alumnos (codalu, nomalu, apealu, edad, ciclo, turno, sexo, carrera) values (1,'JOSE LUIS','LINARES PORRES',20,4,'D','M','INGENIERIA DE SISTEMAS');
Insert
into Alumnos (codalu, nomalu, apealu, edad, ciclo, turno, sexo, carrera) values (2,'ANA','TORRES AYQUIPA',18,4,'N','F','INGENIERIA DE SISTEMAS');
Insert
into Alumnos (codalu, nomalu, apealu, edad, ciclo, turno, sexo, carrera) values (3,'JORGE','ALVAREZ TUNES',24,3,'D','M','ADMINISTRACION');
Insert
into Alumnos (codalu, nomalu, apealu, edad, ciclo, turno, sexo, carrera) values (4,'AUGUSTO','FLORES CURAHUA',21,7,'D','M','ARQUITECTURA');
Insert
into Alumnos (codalu, nomalu, apealu, edad, ciclo, turno, sexo, carrera) values (5,'CECILIA ROSA','PAJARES COMILLA',20,2,'N','F','TURISMO Y HOTELERIA');
Insert
into Alumnos (codalu, nomalu, apealu, edad, ciclo, turno, sexo, carrera) values (6,'LOURDES VIRGINIA','CASTILLO FLORES',19,1,'N','F','ARQUITECTURA');
Insert
into Alumnos (codalu, nomalu, apealu, edad, ciclo, turno, sexo, carrera) values (7,'TATIANA','PERALES CASMA',23,1,'D','F','CONTABILIDAD');
Insert
into Alumnos (codalu, nomalu, apealu, edad, ciclo, turno, sexo, carrera) values (8,'HUGO ALFREDO','LOARTE VEGA',17,9,'D','M','INGENIERIA DE SISTEMAS');
Insert
into Alumnos (codalu, nomalu, apealu, edad, ciclo, turno, sexo, carrera) values (9,'DIONICIO','HUAMAN FLORES',16,7,'N','M','ELECTRONICA');
Insert
into Alumnos (codalu, nomalu, apealu, edad, ciclo, turno, sexo, carrera) values (10,'TARYN','ALMONACID FERRI',22,8,'D','F','TURISMO Y HOTELERIA');
Como verán hay un campo adicional que es ‘carrera’ el cual no solicitaron, pero sin embargo lo utilizaremos más adelante en una de los siguientes enunciados.
2. Abrimos el Visual Studio 2010 (Visual Basic .Net) y realizamos los siguientes pasos:
- Archivo, nuevo, proyecto…., Visual Basic
- Seleccionar Aplicación de Windows Forms
- Colocar de nombre al proyecto ConsultaxEdades, desactivar la opción Crear directorio para la solución, aceptar.
3. Vamos a realizar el siguiente diseño de pantalla y agregaremos los controles respectivos.
Nos dirigimos a la ventana de propiedades y a cada objeto le asignamos sus propiedades según la tabla a continuación:
Objeto
|
Propiedad
|
Valor
|
Form1
|
Name
Text
|
ConsultaxEdades
Consulta por Rango
de Edades
|
Label1
|
Text
|
Edad Mínima
|
Label2
|
Text
|
Edad Maxima
|
Text1
|
Name
|
txtEdadMinima
|
Text2
|
Name
|
txtEdadMaxima
|
Button1
|
Text
Name
|
Consultar
btnConsultar
|
Procedimientos asociados a eventos de los objetos
Objeto
|
Evento
|
Nombre de Procedimiento
|
Form
|
Load
|
ConsultaxEdades_Load
|
btnConsultar
|
Click
|
consultar
|
---
| --- | llenarListView |
4. Comenzamos a programar lo siguiente:
Imports System.Data.SqlClient 'NameSpace que permite usar las clases para interactuar con SQL Server
Public Class consultaxEdades
'Declaramos un objeto de conexión y un
DataReader que servirá de contenedor de datos
Dim con As SqlConnection
Dim
drd As SqlDataReader
'El
evento Load del formulario
Private
Sub consultaxEdades_Load(sender As System.Object,
e As System.EventArgs)
Handles MyBase.Load
con = New SqlConnection("integrated
security=true;server=COMP-PCW01;database=Universidad")
End Sub
'Creamos un procedimiento el cual nos
permitira llenar nuesto ListView cada vez que demos click en nuestro botón
Consultar
Private Sub
llenarListView()
Dim fila As
New ListViewItem
'Declaramos un objeto del tipo ListViewItem
While drd.Read 'Bucle
que recorre cada una de las filas del objeto DataReader que contiene nuestra
información
'Se
inserta cada fila del DataReader en nuestro ListView
fila = lvwDetalle.Items.Add(drd(0).ToString)
fila.SubItems.Add(drd(1).ToString)
fila.SubItems.Add(drd(2).ToString)
fila.SubItems.Add(drd(3).ToString)
End While
End Sub
'Este es el evento Click de nuestro botón
btnConsultar
Private Sub consultar(sender As System.Object,
e As System.EventArgs)
Handles btnConsultar.Click
'Declaramos
nuestras variables y le asignamos los valores de cada control
Dim edad1, edad2 As Integer
edad1 = Val(txtEdadMinima.Text)
edad2 = Val(txtEdadMaxima.Text)
'Validamos que los valores ingresados sean
números y que la edad mínima no sea mayor a la edad máxima
If Not (IsNumeric(txtEdadMinima.Text) Or IsNumeric(txtEdadMinima.Text)) Or edad1 > edad2 Then
MsgBox("Ingrese un Rango de edades correctos", MsgBoxStyle.Information)
txtEdadMinima.Focus()
Return
End
If
Try
con.Open() 'Abrimos nuestra conexión
'Declaramos
un objeto del tipo SqlCommand que nos permitira realizar nuestras consultas SQL
Dim cmd As SqlCommand = New SqlCommand("Select
[nomalu],[apealu],[ciclo],[edad] From Alumnos where edad BETWEEN '"
+ txtEdadMinima.Text + "' AND '" +
txtEdadMaxima.Text + "'", con)
drd =
cmd.ExecuteReader() 'Ejecutamos la consulta SQL y
obtenemos los datos
If Not drd.HasRows Then 'Validamos si nuestro contenedor DataReader tiene
información
MsgBox("No
existen Alumnos en el Rango de edades Ingresado", MsgBoxStyle.Information)
txtEdadMinima.Focus()
con.Close()
Return
End If
lvwDetalle.Clear() 'Limpiamos nuestro ListView antes de agregar los datos
' Creamos
la cabecera (Títulos) para nuestro ListView
With
lvwDetalle
.Columns.Add("Nombre", 150, HorizontalAlignment.Left)
.Columns.Add("Apellidos", 150, HorizontalAlignment.Left)
.Columns.Add("Ciclo", 50, HorizontalAlignment.Center)
.Columns.Add("Edad", 50, HorizontalAlignment.Left)
.View = View.Details
End With
'Llamamos
a nuestro procedimiento llenarListView para agregar la información a nuestro
ListView desde el DataReader
llenarListView()
drd.Close() 'Cerramos el DataReader
Catch ex As
SqlException 'En
caso haya error en nuestro codigó estas sentencias nos dará pistas del error.
Dim er As SqlError
For Each er In ex.Errors
MsgBox(er.Message)
Next
End
Try
con.Close() 'Cerramos la conexión
End Sub
End Class
He tratado de dejar comentarios en las sentencias más importantes a modo de explicar con mayor detalle el uso de cada línea de código. Espero les sea de utilidad y sigan practicando mucho más la programación y les guste tanto como a mí. Cualquier consulta no duden en hacerlo y si les gusto esto entonces recomiéndenlo.
Ojo: En la cadena de conexión del programa se debe de colocar el nombre de su Servidor de Base de datos que figura en su SQL Server y este debe ser colocado en el parámetro server=<Nombre Servidor>.
con = New SqlConnection("integrated security=true;server=COMP-PCW01;database=Universidad")
Ojo: En la cadena de conexión del programa se debe de colocar el nombre de su Servidor de Base de datos que figura en su SQL Server y este debe ser colocado en el parámetro server=<Nombre Servidor>.
con = New SqlConnection("integrated security=true;server=COMP-PCW01;database=Universidad")
End Sub
Muy Bueno amigo se entiende mucho, algún correo para contactarte
ResponderEliminarGracias Johon Lopez por tu comentario, aunque las herramientas de edición del Blog no son de mucha ayuda. Estaré dando mayor énfasis en las explicaciones para que los usuarios que recién inician en la programación, también puedan entenderlo rápidamente.
Eliminar