also hallo erstmal,
ich möchte mich zu einer mysql datenbank verbinden un dann alle sekunde am besten ein query schicken ohne mich neu mit der datenbank zu verbinden.
hier der jetztiger quellcode er verbindet sich alle sekunde mit der db un das geht natürlich stark auf die leistung.
Private Sub oertimer_Tick(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles oertimer.Tick
ReadMyData("server=" & serverIp & ";" _
& "user id=" & serverUser & ";" _
& "password=" & serverPasswd & ";" _
& "database=" & serverData & ";pooling=false;Max Pool Size=10;connect" & _
"timeout=3")
lblLadeJetzt2.Visible = False
End Sub
Public Sub ReadMyData(ByVal myConnString As String)
Dim mySelectQuery As String = "SELECT `programm_id` AS 'id'," & _
"`sendungen`.`titel` AS 'title', UNIX_TIMESTAMP(`startzeit`) -" & _
"UNIX_TIMESTAMP(now( )) AS 'countdown', `startzeit` AS 'start'," & _
"DATE_ADD(`startzeit`, INTERVAL `laenge` SECOND) AS 'end', `laenge`" & _
"AS 'length', `datei` AS 'mediafile', IFNULL( `logo` , NULL ) AS" & _
"'osd', `audio_stereo` AS 'stereo', `quellen`.`bezeichnung` AS" & _
"'bezeichnung', NOW( ) AS 'sqltime', IFNULL( `untertitel` , NULL ) AS" & _
"'untertitel' FROM `programm` LEFT JOIN `sendungen` USING (" & _
"`sendung_id`) LEFT JOIN `sendungen_kategorien` USING (" & _
"`sendung_kategorie_id`) LEFT JOIN `programm_kategorien` USING (" & _
"`programm_kategorie_id`) LEFT JOIN `quellen` USING (`quelle_id`)" & _
"WHERE `startzeit` > NOW() AND DATE_ADD(now(), INTERVAL 24 HOUR) >" & _
"`startzeit` AND (((`sndkat_fs_eng_req` = '1' AND `prgkat_fs_eng_req`" & _
"= '1') AND NOT ISNULL(`fs_datum`) AND NOT ISNULL(`eng_nr`)) OR NOT (" & _
"`sndkat_fs_eng_req` = '1' AND `prgkat_fs_eng_req` = '1')) AND ((" & _
"`mediafile_required` = '1' AND NOT ISNULL(`datei`)) OR" & _
"`mediafile_required` = '0') ORDER BY `startzeit`"
Dim myConnection As New MySqlConnection(myConnString)
Dim myCommand As New MySqlCommand(mySelectQuery, myConnection)
myConnection.Open()
Dim myReader As MySqlDataReader
myReader = myCommand.ExecuteReader()
' Always call Read before accessing data.
' Prüft ob was zurückkommt vom SQL Command
If myReader.HasRows Then
' While myReader.Read()
myReader.Read()
lblTitel1.Text = "Titel: " & myReader.GetString(1)
lblCoundown.Text = "Nächste Sendung in: " & _
myConverter.FormatSeconds(myReader.GetString(2))
lblStartzeit1.Text = "Startzeit: " & myReader.GetString(3)
If Not myReader.IsDBNull(4) Then
lblEndzeit1.Text = "Endzeit: " & myReader.GetString(4)
End If
lblLänge1.Text = "Länge: " & myConverter.FormatSeconds( _
myReader.GetString(5))
lblQuelle1.Text = "Quelle: " & myReader.GetString(9)
stripLblTime.Text = "Aktueller UNIX-Timestamp: " & _
myReader.GetString(10)
If Not myReader.IsDBNull(11) Then
lblUntertitel1.Text = "Untertitel: " & myReader.GetString(11)
Else
lblUntertitel1.Text = "Untertitel: NULL"
End If
' always call Close when done reading.
myReader.Close()
' Close the connection when done with it.
myConnection.Close()
myConnection.Dispose()
Else
stripLblTime.Text = stripLblTime.Text & " KEINE NÄCHSTE SENDUNG" & _
"BITTE DATENBAK ÜBERPRÜFEN !!!!"
End If
End Sub 'ReadMyData hoff es is verständlich was ich möchte.
danke schonmal
mfg jens |