Consultas de la base de datos
Ahora vamos a hacer unas consultas sencillas a la base de datos.
Para hacer la búsquedas de alumnos tendremos de dos maneras de buscarlos, por apellido o por matricula, se pondrá dos radiobutons, el cual indicara como se hará la consulta, si por matricula o por apellido. Además pondremos un control de tipo listbox, en el cual desplegaremos los resultados de la búsqueda.
Para hacer la búsquedas de alumnos tendremos de dos maneras de buscarlos, por apellido o por matricula, se pondrá dos radiobutons, el cual indicara como se hará la consulta, si por matricula o por apellido. Además pondremos un control de tipo listbox, en el cual desplegaremos los resultados de la búsqueda.
En el formulario formCAlumno, ponemos los elementos como se ve en la figura anterior, los radiobutons tendrán los siguientes nombres: rdbtnMatric y rdbtnApellido, para Matricula y para Apellido respectivamente, una caja de texto que se llamara txtBusqueda, el botón de búsqueda y por ultimo la caja de lista para desplegar los resultados que se llamara ltsBxResult.
Además se agregan los controles de conexión a la base de datos, la conexión con nombre cnxConsAlumnos, el adaptador adapterCAlumnos y el dataset con el nombre DsConsalumn, en el código se hace la carga de la conexión de la base de datos.
Private Sub formCAlumn_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
DsConsAlumn.Clear()
adapterCAlumnos.Fill(DsConsAlumn, "ALUMNOS")
End Sub
Private Sub formCAlumn_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
DsConsAlumn.Clear()
adapterCAlumnos.Fill(DsConsAlumn, "ALUMNOS")
End Sub
El funcionamiento de esta pantalla será, que solo se podrá introducir un numero o apellido si esta activado alguno de los dos radiobutons, en caso contrario deberá desplegar un mensaje de elegir el tipo de búsqueda. También en caso de darle clic al botón de búsqueda si haber ingresado algún dato de búsqueda, desplegara el mismo mensaje.
Para que despliegue el mensaje de advertencia al querer introducir un dato en la caja de texto sin antes haber elegido alguna opción de matricula o apellido, pondremos en siguiente código.
Private Sub txtBusqueda_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtBusqueda.GotFocus
If Not (rdbtnApellido.Checked Or rdbtnMatric.Checked) Then
MsgBox("Elige una opción: Matricula o Apellido")
End If
End Sub
Ponemos la condición si alguno de los dos radiobutons no ha sido elegido ( If Not (rdbtnApellido.Checked Or rdbtnMatric.Checked) Then) entonces se mandara el mensaje.
Una vez que se ha elegido el tipo de búsqueda y se escribe el dato de referencia a la búsqueda se le da clic al botón de búsqueda.
Para que haga la búsqueda pondremos el siguiente código en el método del botón.
Private Sub btnBuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBuscar.Click
Dim tabla As DataTable
Dim band As Boolean = True
tabla = Me.DsConsAlumn.Tables("ALUMNOS")
Dim cadCons As String
If rdbtnMatric.Checked Then
cadCons = "matricula like '" + txtBusqueda.Text + "'"
Else
If rdbtnApellido.Checked Then
cadCons = "apellido like '" + txtBusqueda.Text + "'"
Else
MsgBox("Elige una opcion: Matricula o Apellido")
band = False
End If
End If
If band Then
Dim regEncontrados() As DataRow
regEncontrados = tabla.Select(cadCons)
If regEncontrados.Length > 0 Then
Dim i As Integer
For i = 0 To regEncontrados.GetUpperBound(0)
ltsBxResult.Items.Add(regEncontrados(i)("matricula") _
+ " " + regEncontrados(i)("nombre") + " " _
+ regEncontrados(i)("apellido") + " " _
+ regEncontrados(i)("direccion") + " ")
Next
Else
MsgBox("No se encontraron registros")
End If
End If
End Sub
| Dim tabla As DataTable | Se declara un objeto de tipo datatable |
| tabla = Me.DsConsAlumn.Tables("ALUMNOS") | Se relaciona el objeto tabla con el dataset con los datos de la tabla |
| Dim band As Boolean = True | Se declara un objeto de tipo booleano, que es una bandera la cual nos va a indicar si realmente eligieron uno de los dos radiobutons, para poder hacer la búsqueda |
| Dim cadCons As String | Se declara una cadena de consulta |
| If rdbtnMatric.Checked Then cadCons = "matricula like '" + txtBusqueda.Text + "'" | Si fue elegido el radio boton de matricula, entonces la búsqueda de hará en el campo matricula y se hace una condición tipo SQL con el valor que esta en la caja de texto. |
| If rdbtnApellido.Checked Then cadCons = "apellido like '" + txtBusqueda.Text + "'" | Si fue elegido el radio boton de apellido, se hará la búsqueda en el campo apellido. |
| Else MsgBox("Elige una opcion: Matricula o Apellido") band = False End If | En caso de que no haya sido elegido ninguno de los dos radio boton, y se le dio clic al boton de búsqueda se lanzara un mensaje de advertencia, se pone la bandera en falso, para que ya no se haga la búsqueda sin tener datos de referencia |
| If band Then | Si la bandera es verdadera, entonces poder hacer la consulta |
| Dim regEncontrados() As DataRow | Se crea un arreglo de varios objetos de tipo datarow |
| regEncontrados = tabla.Select(cadCons) | Se hace la búsqueda en la tabla, ya sea por matricula o por apellido, y todos los registros encontrados serán guardados en el arreglo de objetos |
| If regEncontrados.Length > 0 Then | Si el número de registros encontrados es mayor a cero, entonces todos los resultados serán desplegados dentro del listbox. |
| For i = 0 To regEncontrados.GetUpperBound(0) ltsBxResult.Items.Add(regEncontrados(i)("matricula") _ + " " + regEncontrados(i)("nombre") + " " _ + regEncontrados(i)("apellido") + " " _ + regEncontrados(i)("direccion") + " ") Next | Se utiliza un ciclo FOR para desplegar cada uno de los registros encontrados. Indicamos el número de registro del arreglo con la variable i, y además cada uno de los campos, de la tabla. |
| Else MsgBox("No se encontraron registros") End If | En caso de que el arreglo regEncontrados.Length tenga cero elementos, es porque no se encontró registro alguno, por lo tanto se manda un mensaje indicando que no se encontró ningún registro de acuerdo a la búsqueda. |
Ejercicio:
Haz las consultas de las materias, las consultas de las materas se harán de acuerdo a la división, poner un ComboBox indicando cada una de las divisiones,
el usuario elegirá una división y la consulta desplegara todas las materias que pertenezcan a esa división.
2 comentarios:
pues la practica esta algo enredada, ademas que las maquinas no depuran, como devieran.
Buenos dias maestro:
kisieramos decirle ke no le entendemos al final de la parte 3, esta un poco enredada y se nos complica.
kisieramos pedirle su ayuda para ke no nos vaya a reprobar, xq la vrdad si le hemos echado ganas y keremosn salir, no kedarnos x BD.
xfa ayudenos!!!!!!!!!!!!!!!!!!
Atte: Sus alumnos consentidos*
y lo kremos mas ke nunk!!!!!!!!
Publicar un comentario