none
ERROR AL ACTUALIZAR DATAGRIDVIEW RRS feed

  • Pregunta


  • Buenas tardes.. Estoy trabajando con SQL 2008 y Visual Studio 2010..
    Cargo mi informacion mediante un procedimiento almacenado a mi DataGridView..
    Pero le he agregado hilos.. en la cual programe para que cada 1 minuto se actualice la info
    a mi Grilla.. Pasa un minuto y ese mensaje es lo que me arroja.. poniendo adicionalmente asi mi grilla..

    Espero y me puedan ayudar..

    Pongo el codigo para Hilos..

        Dim rodalaco As Thread
        Const INTERVALO_EN_MINUTOS As Integer = 1


    Private Sub Timer2_Timer()
            Try
                'VARIABLE ESTATICA PARA ACUMULAR LA CANTIDAD DE SEGUNDOS
                Static Temp_Seg As Long
                'INCREMENTA
                Temp_Seg = Temp_Seg + 1
                'COMPRUEBA QUE LOS SEGUNDOS NO SEAN IGUAL A LA CANTIDAD DE MINUTOS QUE QUEREMOS, EN ESTE CASO 1 MINUTO
                If (Temp_Seg * 60) >= (INTERVALO_EN_MINUTOS * 60) * 60 Then
                    'REESTABLECE
                    Temp_Seg = 0
                    CargarSalida()
                    CargarLlegada()
                End If
            Catch ex As Exception
                MessageBoxEx.Show(ex.Message, ".: PORVENIR :.", MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error)
            End Try
        End Sub
    
        Private Sub Timer2_Tick(sender As System.Object, e As System.EventArgs) Handles Timer2.Tick
            Try
                Control.CheckForIllegalCrossThreadCalls = True
                rodalaco = New Thread(AddressOf Timer2_Timer)
                rodalaco.Start()
            Catch ex As Exception
                MessageBoxEx.Show(ex.Message, ".: PORVENIR :.", MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error)
            End Try
        End Sub

    y mi procedimiento almacenado..

        Public Function MostrarPendienteDia(ByVal dts As datos) As DataTable
            conectado()
            Dim dt As New DataTable
            cmd = New SqlCommand("Hola")
            cmd.CommandType = CommandType.StoredProcedure
            cmd.Connection = cnn
            cmd.Parameters.AddWithValue("@fs", dts.gfechasalida)
            If cmd.ExecuteNonQuery Then
                Dim da As New SqlDataAdapter(cmd)
                da.Fill(dt)
            End If
    
            Return dt
        End Function


    Jokesito

    sábado, 8 de marzo de 2014 18:28

Respuestas

  • Buenas tardes.

    Para acceder a ciertas propiedades de un control no lo puedes hacer directamente mediante un hilo.  Debes usar el método Invoke del control:

    public delegate void delegate1();
    private void button1_Click(object sender,  EventArgs e)
    {
        Thread aThread = new Thread(Procedimiento);
        aThread.Start(); 
    }
    
    private void Procedimiento()
    {
        delegate1 aDelegate = new delegate1(ActualizaControl);
        this.Invoke(aDelegate);
    }
    
    private void ActualizaControl()
    {
        button1.Text = "asdf"; 
    }

    • Marcado como respuesta Jokesito miércoles, 12 de marzo de 2014 20:57
    miércoles, 12 de marzo de 2014 11:33

Todas las respuestas

  • Hola:

     Pero ese mensaje es muy genérico, realmente esa sección no da ningún detalles del verdadero error que esta ocurriendo. Dale clic en "Detalles" luego copia todo el mensaje que vez ahí, eso nos lo compartes por favor.


    Saludos desde Monterrey, Nuevo León, México!!!

    domingo, 9 de marzo de 2014 15:35
  • Cuando lo corro desde visual simplemente cae el sistema.. Y no señala el error y eso que tiene try y catch.. Cuando ya esta en ejecutable me sale de esa manera en los detalles me sale que puedo activar la depuravion..

    Jokesito

    domingo, 9 de marzo de 2014 18:43
  • ************** Texto de la excepción **************
    System.ArgumentNullException: El valor no puede ser nulo.
    Nombre del parámetro: image
       en System.Drawing.Graphics.DrawImage(Image image, Int32 x, Int32 y)
       en System.Drawing.Graphics.DrawImageUnscaled(Image image, Point point)
       en DevComponents.DotNetBar.ScrollBar.ScrollBarCore.Paint(ItemPaintArgs p)
       en DevComponents.DotNetBar.Controls.᳟.੟(PaintEventArgs ِ)
       en DevComponents.DotNetBar.Controls.᳙.OnPaint(PaintEventArgs e)
       en System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer)
       en System.Windows.Forms.Control.WmPaint(Message& m)
       en System.Windows.Forms.Control.WndProc(Message& m)
       en System.Windows.Forms.ScrollBar.WndProc(Message& m)
       en System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       en System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       en System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

    Esto es lo que me sale cuando despliego el error..


    Jokesito

    lunes, 10 de marzo de 2014 14:35
  • Buenas tardes.

    Para acceder a ciertas propiedades de un control no lo puedes hacer directamente mediante un hilo.  Debes usar el método Invoke del control:

    public delegate void delegate1();
    private void button1_Click(object sender,  EventArgs e)
    {
        Thread aThread = new Thread(Procedimiento);
        aThread.Start(); 
    }
    
    private void Procedimiento()
    {
        delegate1 aDelegate = new delegate1(ActualizaControl);
        this.Invoke(aDelegate);
    }
    
    private void ActualizaControl()
    {
        button1.Text = "asdf"; 
    }

    • Marcado como respuesta Jokesito miércoles, 12 de marzo de 2014 20:57
    miércoles, 12 de marzo de 2014 11:33