Buscar en el blog

martes, 26 de agosto de 2014

En este artículo veremos las dos últimas funciones que programaremos, por el momento en la clase ConexBD de nuestro proyecto.
La primera de las funciones que programaremos nos servirá para crear una tabla virtual, por llamarla de alguna manera, con lo datos de una tabla de nuestra base de datos. A la función le pasaremos una tabla, la que nosotros queramos, y la función se encargará de devolvernos esa tabla virtual con sus datos (devolverá un DataTable).

La segunda función se encargará de realizar una búsqueda de datos en una tabla que nosotros le digamos. Esta función de búsqueda, devolverá un resultado booleano, es decir, true o false, (verdadero o falso). Devolverá verdadero siempre y cuando la función encuentre registros, mientras que si no se encuentra ningún registro en la tabla, devolverá un regustado falso.
Como siempre en ambas funciones, la tabla que nosotros le digamos, se la pasaremos en un parametro a la función.
Veamos entonces como se programan dichas funciónes para terminar con la clase ConexBD.

'Creamos una función que nos va a devolver un DataTable con todos los datos de una tabla
'Antes, debemos declarar la variable que almacenara el Datatable, así que, debajo de la lista de variables que estamos declarando escribimos lo siguiente:

Public Adaptador As OleDbDataAdapter 'Adaptador que se encarga de pasar datos entre la BD y un dataset (o datatable)

    Public DT As DataTable 'Variable que almacena un datatable p qie va a almacenar, ya que todavia no se ha construido.

Function CrearDT(Tabla As String) As DataTable
        ConsultaSQL = "Select * From " & Tabla
        'Esta consulta seleccina datos de una tabla que le pasaremos por parametro para luego almacenarlos en un datatable
        Try
            'Creamos un adaptador al que le pasamos los parametros de la consulta y la conexión que vamos a usar
            Adaptador = New OleDbDataAdapter(ConsultaSQL, Conex)
            'Creamos un nuevo datatable
            DT = New DataTable
            'y lo limpiamos por si acaso tiene algo. No deberia, ya que es un nuevo datatable pero
            'por si acaso.
            DT.Clear()

            Adaptador.Fill(DT) 'llenamos el datatable con los datos del adaptador

            'si el número de filas de la tabla es 0, entonces mostramos un mensaje
            If DT.Rows.Count = 0 Then
                MsgBox("La tabla que desea mostrar no contiene ningún dato", vbCritical, "Tabla " & Tabla & " vacía")
                Return Nothing 'y en lugar de que nos devuelva un datatable, le decimos que no nos devuelva nada.
            Else 'en caso contrario, es decir, si las filas de la tabla son mayores que cero, entonces que devuelva el datatable.
                Return DT
            End If

        Catch ex As Exception 'Si ocurre algún error, mostramos un mensaje con la excepción y no devolvemos nada.
            MsgBox("Los datos solicitados no se pueden mostrar" & vbCr & ex.ToString, vbCritical, "Imposible mostrar los datos de la tabla " & Tabla)
            Return Nothing
        End Try
    End Function

'Y ahora la siguiente función que programaremos será la de busqueda de registros.

 Function BuscarRegistros(Tabla As String, Condicion As String) As Boolean
        'Creamos la consulta pasandole la tabla en un parametro y la condición que debe complir la búsqueda
        'en otro parametro.
        ConsultaSQL = "Select * From " & Tabla & " Where " & Condicion

        Try 'Intentamos crear un nuevo adaptador con la consulta que ejecutará el adaptador y la conexión que se va a utilizar
            Adaptador = New OleDbDataAdapter(ConsultaSQL, Conex)
            'Creamos un nuevo datatable, donde se almacenaran los datos de la busqueda
            DT = New DataTable
            DT.Clear() 'Limpiamos el datatable
            Adaptador.Fill(DT) 'Y llenamos el datatable con los datos del adaptador.

            If DT.Rows.Count > 0 Then 'Si el numero de filas del datatable es mayor que cero
                'devolveremos verdadero, porque significa que se encontraron datos
                Return True
            Else 'En caso contrario devolveremos false porque quiere decir que no se han encontrado datos
                Return False
            End If
        Catch ex As Exception 'En caso de algún error, mostraremos un mensaje y devolveremos false, porque no se ha ejecutado
            'la busqueda de los registros.
            MsgBox("Se ha producido un error al validar el usuario introducido" & vbCr & ex.ToString, vbCritical, "Error de validación de usuarios")
            Return False
        End Try

    End Function

'Fijaros que al utilizar el adaptador, no se utilizan las funciones de conectar o desconectar, ya que el adaptador, posee dicha función incorporada, es decir, que el adaptador realiza la conexíon, recoge los datos y realiza la desconexión de forma automática.

0 comentarios:

Publicar un comentario

 
Solicitamos su permiso para obtener datos estadísticos de su navegación en esta web, en cumplimiento del Real Decreto-ley 13/2012. Si continúa navegando consideramos que acepta el uso de cookies. OK | Más información