
Problema al actualizar informacion de objetos
Publicado por D.Gallego (11 intervenciones) el 10/01/2016 02:06:29
Buenas noches
Estoy haciendo un programa que coge de una base de datos nombre e ips, las cuenta y crea un circulo que dependiendo de si esta encendido o no aparece en rojo o en verde. Lo que hace es:
Busca el registro numero 1
crea el objeto
verifica el estado
Le asigna un color
Así hasta que termina con todo
Tiene un timer, pero cuando se ejecuta por 2º vez no se reflejan cambios. Entiendo que simplemente crearía un objeto nuevo encima (Que no es lo que quiero), pero no hace nada.
Querría saber como, después de crear todos esos objetos, puedo acceder a ellos para cambiar su estado.
La meta es conseguir que cada objeto a través de un hilo (imagino), compruebe cada x tiempo el estado de su ip asociado. Con los hilos tambien he tenido problemas, por eso los he dejado aparcados.
Este es el codigo:
Gracias y un saludo
Estoy haciendo un programa que coge de una base de datos nombre e ips, las cuenta y crea un circulo que dependiendo de si esta encendido o no aparece en rojo o en verde. Lo que hace es:
Busca el registro numero 1
crea el objeto
verifica el estado
Le asigna un color
Así hasta que termina con todo
Tiene un timer, pero cuando se ejecuta por 2º vez no se reflejan cambios. Entiendo que simplemente crearía un objeto nuevo encima (Que no es lo que quiero), pero no hace nada.
Querría saber como, después de crear todos esos objetos, puedo acceder a ellos para cambiar su estado.
La meta es conseguir que cada objeto a través de un hilo (imagino), compruebe cada x tiempo el estado de su ip asociado. Con los hilos tambien he tenido problemas, por eso los he dejado aparcados.
Este es el codigo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
Public Sub CargarEquipos()
Try
Using cnn As New OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=.\A1.mdb")
' Creamos un comando
Dim cmd As OleDbCommand = cnn.CreateCommand()
' Abrimos la conexión
cnn.Open()
Dim consulta As OleDbCommand
consulta = New OleDb.OleDbCommand("SELECT count(*) FROM IP", cnn)
Dim Total As Integer = CType(consulta.ExecuteScalar(), Integer)
'MsgBox(Total)
Dim Lx As Integer = 64
Dim Ly As Integer = 32
Dim Sx As Integer = 32
Dim Sy As Integer = 32
Dim Llx As Integer = 22
Dim Lly As Integer = 70
Dim SeparacionH As Integer = 80
Dim SeparacionV As Integer = 70
For i As Integer = 1 To Total
If Lx > 640 Then
Lx = 64
Ly = Ly + SeparacionH
Llx = 22
Lly = Lly + SeparacionV
End If
'Dim pb As New PictureBox
Dim pb(i) As PictureBox
pb(i).Location = New Point(Lx, Ly)
pb(i).Size = New Size(Sx, Sy)
pb(i).Image = Image.FromFile(".\Iconos\azul.png")
Me.Controls.Add(pb(1))
Lx = Lx + SeparacionH
Dim lbl As New Label
lbl.Location = New Point(Llx, Lly)
lbl.TextAlign = ContentAlignment.MiddleCenter
'lbl.Text = "Hola"
Me.Controls.Add(lbl)
Llx = Llx + SeparacionH
Dim IPlabel As OleDbCommand
IPlabel = New OleDb.OleDbCommand("SELECT NOMBRE FROM IP WHERE ID = " & i & " ", cnn)
Dim label As String = CType(IPlabel.ExecuteScalar, String)
lbl.Text = label
Dim IPcadena As OleDbCommand
IPcadena = New OleDb.OleDbCommand("SELECT IPEQUIPO FROM IP WHERE ID = " & i & " ", cnn)
Dim IP As String = CType(IPcadena.ExecuteScalar, String)
'MsgBox(IP)
Dim value As Boolean = My.Computer.Network.Ping(IP)
If value = True Then
pb(i).Image = Image.FromFile(".\Iconos\verde.png")
Else
pb(i).Image = Image.FromFile(".\Iconos\rojo.png")
End If
'HiloPing = New Threading.Thread(AddressOf PINGER)
'HiloPing.Start()
'MsgBox(Lx)
Next
Lx = 64
Ly = 32
Sx = 32
Sy = 32
Llx = 22
Lly = 70
MsgBox("Clinc")
End Using
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Gracias y un saludo
Valora esta pregunta


0