none
Como acceder al textbox para el Dataset RRS feed

  • Pregunta

  • Buenas, tengo un problema con mi pequeño proyecto de 3 capas.

    CAPA DAO 

    He creado un dataset el cual contiene un Store procedure para buscar un producto. 

    En la clase ProductoDAO he colocado esto de acá

    Public Function BUSCA_PRODUCTOS() As Boolean
            Dim result As Boolean
            Dim ProductoDAO As New BuscarProducto.SP_BUSCA_PRODUCTODataTable
            Dim da As New BuscarProductoTableAdapters.SP_BUSCA_PRODUCTOTableAdapter
            da.Fill(ProductoDAO, productoBE.CodigoProducto)
            Dim dt As DataTable = CType(ProductoDAO, DataTable)
            Return result
        End Function

    capa LOGICA

    Acá he colocado esto pero me manda error.

    Public Function BUSCA_PRODUCTOS() As boolean
            Return ProductoDAO.BUSCA_PRODUCTOS
        End Function

    En el formulario que se encuentra en una capa aparte llamada VISTA   existe un formulario con donde tengo un textbox y quiero que al ingresar el codigo, este vaya al DAO, realice la busqueda con la programacion lo mande al LOGIC y luego lo muestre en mi interface, espero puedan ayudarme, saludos cordiales

    martes, 7 de abril de 2015 3:24

Todas las respuestas

  • El problema es que tus métodos no están devolviendo nada. Es decir, en BUSCA_PRODUCTOS devuelves un Boolean que siempre será false porque no le asignas ningún valor. Por dentro, recuperas datos a la variable dt, pero esa variable no la devuelves, y como es local, se pierde en cuanto sales del procedimiento. Tienes que retocarlo para que devuelva los resultados de la búsqueda, en lugar de devolver un Boolean que no se usa para nada.

    Y en la capa lógica el problema es que llamas al método como si fuera estático (Shared) pero en realidad es un método de instancia y no estás instanciando la clase que lo contiene, por eso te da un error. El remedio más sencillo (pero no necesariamente el óptimo, depende de diversos factores como por ejemplo si vas a inyectar dependencias para realizar las pruebas unitarias) es marcarlo como Shared en la clase ProductoDAO.

    martes, 7 de abril de 2015 6:44
  •      Que tal amigo te paso un ejemplo que podes retornar un dataTable y asignar a un texBox o Grilla.

    Ejemplo:

    Public Function BUSCA_PRODUCTOS() As DataTable
            Dim ProductoDAO As New BuscarProducto.SP_BUSCA_PRODUCTODataTable
            Dim da As New BuscarProductoTableAdapters.SP_BUSCA_PRODUCTOTableAdapter
            da.Fill(ProductoDAO, productoBE.CodigoProducto)
            Dim dt As DataTable = CType(ProductoDAO, DataTable)
            Return dt
        End Function
    
    
    Dim dt  as DataTable=BUSCA_PRODUCTOS()
    if dt.rows.count > 0 then
       textBox=dt.rows(0)("codigo")
       textBox2=dt.rows(0)("nombre")
       Grilla.DataSource=dt
    end if
    
    

    OBS: Favor vota si te es útil la información.
    Saludos
    Bader Molinas - Paraguay
    https://deveintel.wordpress.com/

    martes, 7 de abril de 2015 14:57
  •      Que tal amigo te paso un ejemplo que podes retornar un dataTable y asignar a un texBox o Grilla.

    Ejemplo:

    Public Function BUSCA_PRODUCTOS() As DataTable
            Dim ProductoDAO As New BuscarProducto.SP_BUSCA_PRODUCTODataTable
            Dim da As New BuscarProductoTableAdapters.SP_BUSCA_PRODUCTOTableAdapter
            da.Fill(ProductoDAO, productoBE.CodigoProducto)
            Dim dt As DataTable = CType(ProductoDAO, DataTable)
            Return dt
        End Function
    
    
    Dim dt  as DataTable=BUSCA_PRODUCTOS()
    if dt.rows.count > 0 then
       textBox=dt.rows(0)("codigo")
       textBox2=dt.rows(0)("nombre")
       Grilla.DataSource=dt
    end if
    

    OBS: Favor vota si te es útil la información.
    Saludos
    Bader Molinas - Paraguay
    https://deveintel.wordpress.com/

    entiendo tu contexto, mi tema va por donde coloco esos codigos, por ejemplo la funcion busca productos() se que va en el DAO, y luego lo llamo en el LOGIC pero mi problema está en como en mi capa VIEW donde hay un textbox y envío el codigo para buscar el producto, como hago para enviar ese parametro al lOGIC ó DAO, esa es mi confusion
    miércoles, 8 de abril de 2015 5:54
  • Hola VikDelCastillo:

    Todavía tienes duda de donde se debe hacer llamado al proceso que realiza la búsqueda?

    Sea una interfaz Web o Windows, puedes crear un botón que invoque la lógica que realiza la búsqueda, llevándole el valor del textbox.... y el resultado lo asocie al grid donde quieres mostrar los resultados.

    si no deseas crear un botón, y es una Interfaz Web entonces debes realizar un código Java, para validar cuando se ingrese en tu textbox, un "enter", y cuando lo encuentre lance el proceso de búsqueda que tienes establecido. 

    Si es Windows, puedes validar el evento keydown del textbox, cuando sea un "enter" realice el llamo al concebido proceso de búsqueda.

    Saludos,


    Camilo Villa

    jueves, 16 de abril de 2015 2:23