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

Como retornar Datatable entre funciones VB.NET

Le invito a leer la siguiente cuestión :

Sabe usted como puedo devolver un conjunto de filas de datos que son el resultado de una consulta select a la BD sql, utilizando BidingSource y Datatable del lenguaje visual basic ?.

La cuestión surge al no poder retornar efectivamente los datos cuando tengo una arquitectura de 3 capas:

DATOS(carpeta)
-conexion BD.vb
-ciudadDAO.vb
FORMULARIO(Carpeta)
-ciudad.vb
LOGICA(Carpeta)
-Gestor ciudad.vb

Ahora bien desde el formulario "ciudad.vb" pido la lista de ciudades para cargar la información en una grilla, el formulario debe pedir los datos al "Gestor ciudad.vb" éste como no hará ninguna validación en especial entonces directamente pide la lista de datos a "ciudadDAO.vb", ésta clase pide también la conexión a "conexion BD.vb" para poder ejecutar efectivamente la consulta select que se encuentra dentro de ella.

Entonces en orden, las clases van así :
Formulario ciudad "ciudad.vb"

Public class frmCiudad

  Private Fun_Ciudad As New Gestor_Ciudad
  Private TablaCiudades As New BindingSource

  Sub CargarGrilla() 'Carga los registros de las ciudades en la tabla
        TablaCiudades.DataSource = Fun_Ciudad.Tabla_Ciudades()
        dgListaCiudad.DataSource = TablaCiudades
  End Sub

End class

Clase gestor ciudad "Gestor ciudad.vb" :

Public class Gestor_ciudad

   Private ciudad As ciudadDAO

   Public Function Tabla_Ciudades() As DataTable 
        Return ciudad.consulta_todas
   End Function
End class

Clase "ciudadDAO.vb" :

   Imports System.Data.SqlClient '///importamos el paquete de sql

Public class ciudadDAO

    Private db As New Conexion_BD

    Public Function consulta_todas() As DataTable
        Dim Tabla As New DataTable
        Try
            Dim da As New SqlDataAdapter("SELECT nombre 'Nombre' FROM CIUDAD", db.Conexion)
            da.Fill(Tabla)
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
        Return Tabla
    End Function
End class

Ahora bien, si has leido atentamente entonces puedo explicar que no hay error en la conexion(creeme) hay error al retornar los datatable entre las clases: "Gestor ciudad.vb" y "ciudadDAO.vb", lo más seguro es que deba crear el BidingSource para ellas pero no sabria como retornarlos.

Sabes como puedo llevar acabo el retorno de los datos ?.

1voto

bl4z3r comentado

¿Puedes colocar los errores que te lanza la aplicacion?

De momento, leete esto que va a orientarte para solucionar tu problema: Building an N-Tier Application in VB.NET, in 8 Steps

1voto

Dr oscar comentado

Tengo lo del retorno de datatable en varias clases, en cada una aparece éste error:
enter image description here

Gracias por atender, dime si consigues como solucionar

0voto

bl4z3r comentado

@Dr oscar modifica tu pregunta para poner nueva información y no uses los comentarios. Lo digo para que este todo mejor organizado y entendible.

1 Respuesta

1voto

bl4z3r Puntos16850

El error es claro. En la imagen que pones dice que debes instanciar el objeto que hace referencia la variable usuario para poder utilizar el método de instancia select_Administrador.

0voto

Dr oscar comentado

Si, no habia creado la variable Datatable a retornar

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