Principales respuestas
ERROR AL ACTUALIZAR DATAGRIDVIEW

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
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
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!!!
-
-
************** 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
-
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