#1 4. Oktober 2011 Abfrage der Datenbank im interval Hallo zusammen, Ich habe eine Listbox, welche die "online"-user listet. Mein wunsch ist es die liste aktuell zu halten, d.h. wenn ein user offline geht, soll sich die liste auch ändern und den benutzer entfernen. Ich habe mir das in etwa so vorgestellt: > DB abruf > ListBox mit inhalt füllen > 10 Sekunden warten > Listbox Clearen > Widerholen So würde sich wohl die Liste alle 10 sekunden aktualisieren Bitte korrigiert mich, wenn es eine einfachere methode gibt dieses Problem zu lösen. Ich habe zwar schon gegoogelt, aber nach über ner stunde rumprobieren kam ich nicht wirklich weiter. Peace, June + Multi-Zitat Zitieren
#2 4. Oktober 2011 AW: Abfrage der Datenbank im interval Du machst ein Timer stellst 10 Sekunden ein und aktuellisiert die Listbox mit den Aktuellen Daten aus der Datenbank + Multi-Zitat Zitieren
#3 4. Oktober 2011 AW: Abfrage der Datenbank im interval ich hab sowas schon ausprobiert, aber egal wie hoch ich den timer mache, die msg boxen poppen direkt nach dem schliessen immer wieder auf 1, 2, 1, 2, 1, 2,... Code: While 1 = 1 Timer1.Interval = 100000 Timer1.Start() MsgBox("1") Timer1.Stop() MsgBox("2") End While Ich bin nicht so der VB pro + Multi-Zitat Zitieren
#4 4. Oktober 2011 AW: Abfrage der Datenbank im interval Du musst den Code den du alle 10 sekunden Ausführen lassen möchtest, in das Timer Event packen (klick mal doppelt auf das Timer Symbol im Designer und schreib den Code in dieses Event) + Multi-Zitat Zitieren
#5 4. Oktober 2011 AW: Abfrage der Datenbank im interval Hier mein Quelltext; Leider öffnet nichtmal ein Form oder ne MsgBox. Es passiert quasi nichts Code: Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object _ , ByVal e As System.EventArgs) _ Handles MyBase.Load While 1 = 1 Timer1.Interval = 1 Timer1.Start() Timer1.Stop() End While End Sub Private Sub Timer1_Tick(ByVal sender As System.Object _ , ByVal e As System.EventArgs) _ Handles Timer1.Tick MsgBox("1") End Sub End Class + Multi-Zitat Zitieren
#6 4. Oktober 2011 AW: Abfrage der Datenbank im interval Ok, ich hab jetzt eine Lösung, hat nicht viel gefehlt. Danke für die Hilfestellung Hier die Lösung: Code: Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object _ , ByVal e As System.EventArgs) _ Handles MyBase.Load While 1 = 1 Timer1.Enabled = True Timer1.Interval = 10000 ' 1000 = 1 Sekunde | 10000 = 10 Sekunden Timer1.Start() Application.DoEvents() End While End Sub Private Sub Timer1_Tick(ByVal sender As System.Object _ , ByVal e As System.EventArgs) _ Handles Timer1.Tick MsgBox("bla..") End Sub End Class + Multi-Zitat Zitieren
#7 4. Oktober 2011 AW: Abfrage der Datenbank im interval Funktioniert zwar, jedoch öffnet sich die Form nicht, weil er noch in der schleife hängt, gibts da vielleicht ne andere Möglichkeit informationen alle paar sekunden aus der Datenbank abzugreifen? + Multi-Zitat Zitieren
#8 4. Oktober 2011 AW: Abfrage der Datenbank im interval Benutze keine while scleifen, sondern stoße den Timer nur 1 mal an und schreib als letzte Anweisung in deine Tick-Methode Timer1.Start() Gruß, Figger + Multi-Zitat Zitieren
#9 4. Oktober 2011 AW: Abfrage der Datenbank im interval hab jetzt nur folgendes im Load Event: Code: loop_timer.Interval = 5000 loop_timer.Start() Application.DoEvents() und im Timer.Tick Event Code: MsgBox("1") funktioniert problem los, danke für den Tipp. Aber noch ne letzte frage, habe ich das auch richtig gemacht? Nicht das im Hintergrund irgendwas voll läuft. + Multi-Zitat Zitieren
#10 4. Oktober 2011 AW: Abfrage der Datenbank im interval Wieso die While schleife? Code: Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object _ , ByVal e As System.EventArgs) _ Handles MyBase.Load Timer1.Enabled = True Timer1.Interval = 10000 ' 1000 = 1 Sekunde | 10000 = 10 Sekunden Timer1.Start() End Sub Private Sub Timer1_Tick(ByVal sender As System.Object _ , ByVal e As System.EventArgs) _ Handles Timer1.Tick MsgBox("bla..") End Sub End Class Sollte reichen. PS: Bennene deine Objekte (Form1, Timer1 etc...), sonst kommst du ganz schnell durcheinander. //Edit: Das kommt davon wenn man mehrere Threads gleichzeitig öffnet und nacheinander abarbeitet -> Zu lahm + Multi-Zitat Zitieren
#11 4. Oktober 2011 AW: Abfrage der Datenbank im interval hab meine Objekte immer alle benannt, hab ja schließlich über 1500 Zeilen code mittlerweile Thread kann geschlossen werden, ich brauchte ja netmal ne schleife + Multi-Zitat Zitieren
#12 7. Oktober 2011 AW: Abfrage der Datenbank im interval Das beste ist du packst das ganze noch in einen "Backgroundworker-Prozess". Dann arbeitet die Form und dein Script. Also schaust du Links bei den Controls wirst du auch Backgroundworker finden. Die while kannst du dir sparen, weil ein Timer immer unendlich oft läuft und jeden "Tick" dein Code ausführt. Also einfach: + Multi-Zitat Zitieren