entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Error al retornar Datatable Visual Basic

Hola un saludo

Quiero mostrarte un error que no le hallo solución acerca del retorno de una función como un datatable que se carga con valores de una base de datos.
Primero aclaro que se el porque debe ser el error, lo que nose es el como solucionarlo.
El error ocurre porque quiero recibir los datos de una consulta en mi BD pero cargarlos en un datatable y retornarlo haciendo uso de las famosas 3 capas: Formulario-Logica-Datos.

Entonces el Formulario pide los datos a la funcion que se encuentra en la Logica, de ésta forma:

Public Class frmBienvenido
    Private Fun_Administrador As New Gestor_Administrador
    Private Registro_Administrador As New BindingSource 'Obtiene la el registro del administrador si ya ha sido registrado

    Private Sub frmBienvenido_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Iniciar_Sesion()
    End Sub

    Sub Iniciar_Sesion()
        Registro_Administrador.DataSource = Fun_Administrador.Datos_Administrador()

        If Registro_Administrador.Count > 0 Then
            btnIniciarSesion.Enabled = True
        Else
            btnIniciarSesion.Enabled = False
        End If
    End Sub

End class

Ahora donde llamo la función es en :

 Registro_Administrador.DataSource = Fun_Administrador.Datos_Administrador()

La función que se llama seria ésta:

Public class
  Private usuario as usuarioDAO

  Public Function Verificar_Administrador() As DataTable 'Devuelve el registro del administrador
         Return usuario.select_administrador  '<==== El error está al retornar, pero el codigo está bien, sólo que parece que no admite
  End Function

End class

Como es mi clase logica y no voy a realizar una transaccion compleja pues solo llamo directamente a la clase en Datos para que me devuelva el datatable y luego que ésta misma se lo devuelva al formulario. Acceso a datos :

Imports System.Data.SqlClient
Public Class usuarioDAO

    Private db As New Conexion_BD
    Private Comando As SqlCommand

     Public Function select_administrador() As DataTable
        Dim Tabla As New DataTable
        Try
            Dim da As New SqlDataAdapter("SELECT * FROM USUARIO WHERE tipo_usuario = 'Administrador'", db.Conexion)
            da.Fill(Tabla)
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
        Return Tabla
    End Function

End class

Ahora para ahorrarles el buscar errores, el error no es la consulta ni la conexion, es por el retorno en la clase de Logica; si incluyo la conexion dentro de esta clase junto con el codigo de busqueda obviamente, entonces funciona perfectamente el programa, pero como pido dos retornos de tipo datatable (Formulario pide a Logica y Logica pide a Datos un datatable) entonces me tira el error :

enter image description here

ENTONCES, alguien sabe como conservar el orden de mis 3 capas y que me retorne el datatable normalmente?.

Gracias por leer

0voto

bl4z3r comentado

¿Haz podido resolver tu problema?

2votos

Dr oscar comentado

Si, este problema es básicamente el mismo a otra pregunta que hice :D y solucioné

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta