lefsaker Skrevet 21. mai 2008 Rapporter Del Skrevet 21. mai 2008 Howdy Jeg holder på med et skoleprosjekt, hvor vi har lyst til å ha et program som ligger i bakgrunnen og henter ut informasjon fra en database, og popper opp når det er nye innlegg. Det som funker: Den ligger i bakgrunnen til et innlegg kommer Når man trykker OK forsvinner vinduet Når et nytt innlegg blir lagt til i databasen, popper den opp igjen Problemet: Når man trykker OK for andre gang, forsvinner vinduet, men det popper opp igjen etter 3 sekkunder med samme informasjon som sist. Noen som ser en feil i koden? Har jobbet ganske lenge med dette nå Imports MySql.Data Public Class Dialog1 Dim cached As String Private Sub Wait(ByVal PMillseconds As Integer) Dim TimeNow As DateTime Dim TimeEnd As DateTime Dim StopFlag As Boolean TimeEnd = Now() TimeEnd = TimeEnd.AddMilliseconds(PMillseconds) StopFlag = False While Not StopFlag TimeNow = Now() If TimeNow > TimeEnd Then StopFlag = True End If Application.DoEvents() End While TimeNow = Nothing TimeEnd = Nothing End Sub Dim cmd As New MySqlClient.MySqlCommand Dim returnValue As Object Dim connect As New MySqlClient.MySqlConnection("Database=test;Data Source=127.0.0.1;User Id=admin;Password=zd3kuxad") Dim read As MySqlClient.MySqlDataReader Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.Visible = False cached = "0" Do While cached = "0" Wait(3000) cmd.CommandText = "SELECT * FROM `hendelser` WHERE (visestil=’10’)" cmd.Connection = connect connect.Open() read = cmd.ExecuteReader While read.Read() txt_longcat.Text = (read.GetString(0)) If txt_longcat.Text = txt_longcat2.Text Then cached = "1" Me.Visible = True lbl_tittel.Text = (read.GetString(1)) lbl_dato.Text = (read.GetString(3)) lbl_klokkeslett.Text = (read.GetString(4)) lbl_hendelse.Text = (read.GetString(2)) lbl_strek.Text = "-" txt_longcat2.Text = txt_longcat.Text Else Me.Visible = False End If End While read.Close() connect.Close() Loop End Sub Private Sub diddeba(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.Visible = False cached = "0" Do While cached = "0" Wait(3000) cmd.CommandText = "SELECT * FROM `hendelser` WHERE (visestil=’10’)" cmd.Connection = connect connect.Open() read = cmd.ExecuteReader While read.Read() If Me.Visible = False Then Me.Visible = True lbl_tittel.Text = (read.GetString(1)) lbl_dato.Text = (read.GetString(3)) lbl_klokkeslett.Text = (read.GetString(4)) lbl_hendelse.Text = (read.GetString(2)) lbl_strek.Text = "-" txt_longcat.Text = (read.GetString(0)) txt_longcat2.Text = txt_longcat.Text End If End While read.Close() connect.Close() Loop End Sub End Class Lenke til kommentar
GeirGrusom Skrevet 21. mai 2008 Rapporter Del Skrevet 21. mai 2008 (endret) Den kjører så lenge Cached står til "0" som den gjør by default, og som heller aldri blir endret. Du burde forresten bruke Boolean og ikke String på cached. edit: Du burde også venne deg til å bruke Using når du lager en reader. Using reader As IDataReader = command.ExecuteReader() ' Bruk readeren her End Using Dette kan spare deg for problemer i fremtiden. Endret 21. mai 2008 av GeirGrusom Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå