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 ?.