Gå til innhold

visual Basic.net og MySQL uthenting


Anbefalte innlegg

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
Videoannonse
Annonse

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 av GeirGrusom
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...