Foros del Web » Programación para mayores de 30 ;) » .NET »

Escribir en un formulario desde una clase que ejecuta un hilo

Estas en el tema de Escribir en un formulario desde una clase que ejecuta un hilo en el foro de .NET en Foros del Web. Hola, Tengo que mostrar en un formulario menú Inicial la información que se obtiene de una base de datos. Esto lo tengo que hacer a ...
  #1 (permalink)  
Antiguo 25/09/2006, 04:12
Avatar de SuperPinwi  
Fecha de Ingreso: septiembre-2005
Mensajes: 317
Antigüedad: 19 años, 6 meses
Puntos: 1
Pregunta Escribir en un formulario desde una clase que ejecuta un hilo

Hola,

Tengo que mostrar en un formulario menú Inicial la información que se obtiene de una base de datos. Esto lo tengo que hacer a través de un hilo que actúa como intermediario y se ocupa de crear la conexión a la base de datos y de obtener esos datos y mostrarlos en unos label del menú inicial. El problema es que no consigo mostrarlo, no sé porqué...

¿es necesario hacer una instancia del menú inicial desde la clase que contiene el hilo?

¿cómo podría hacer que se comunicaran?

adjunto código por si puede servir de ejemplo:

Formulario MenuInicial

Código:
Public Class MenuInicial
    Inherits System.Windows.Forms.Form

    Dim ThreadLeerBD

    Public Property manejaLabel1(ByVal val) As String
        Get
            Return Label1.Text
        End Get
        Set(ByVal Value As String)
            'MessageBox.Show("Llego hasta aquí")
            Label1.Text = val
        End Set
    End Property

    Private Sub BLeerBD_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BLeerBD.Click
        ThreadLeerBD = New System.Threading.Thread(AddressOf ClaseLeerBD.EjecutaHiloBD)
    End Sub

End Class

Código de la Clase LeerBD

Código:
Imports System.Data.OleDb
Imports System
Imports System.Data
Imports System.Timers


Public Class ClaseLeerBD
    Inherits System.Windows.Forms.Form
    Dim ThreadLeerBD

    Public Sub New()
        MyBase.New()
    End Sub

    Public Shared Sub EjecutaHiloBD()
        'Definir en primer lugar una referencia a System.Data.dll
        Dim objConn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\Super.Pinwi\Mis documentos\Mis bases de datos\numeros\numeros.mdb")
        Dim objAcciones As New OleDbCommand
        Dim dt As DataTable
        Dim objAdapter
        'Variable de bucle
        Dim i As Integer
        'Para conocer el número de filas
        Dim n As Integer
        'Cadenas temporales para nombre y numero
        Dim sNombre As String
        Dim nNumero As Integer
        Dim Form1 = New Form

        Try
            objConn.Open()
            objAdapter = New OleDbDataAdapter("SELECT * FROM numeros ORDER BY numero", objConn)
            dt = New DataTable
            objAdapter.Fill(dt)
            n = dt.Rows.Count
            objAcciones.Connection = objConn
            If n = 0 Then
                MessageBox.Show("No se ha encontrado ningún registro que coincida con la selección")
            Else
                For i = 0 To n - 1
                    'Asignar a las variables el contenido del registro
                    sNombre = dt.Rows(i)("nombre").ToString
                    nNumero = dt.Rows(i)("numero").ToString
                    Form1.manejaLabel1 = sNombre
                    Form1.Update()
                Next
            End If
        Catch ex As Exception
            MessageBox.Show(Err.Description, "Información del sistema")
        End Try
    End Sub
End Class
Muchas gracias por anticipado
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:01.