Hallo liebes Forum
Mich beschäftigt momentan das abfragen von mehreren Tabellen aus einer phpmyadmin DB.
Ich habe 5 Tabellen mit Inhalt.
tbl_gtuchDE1, tbl_gtuchDE2, tbl_gtuchDE3, tbl_gtuchDE4, tbl_gtuchDE5
Ich Frage im moment so ab:
Wenn ich das Programm laufen lasse, benötigt die Abfrage mind. 1 Minute bis die Einträge in der From erscheinen obwohl in der DB gerademal 550 Einträge vorhanden sind und tbl_3 bis tbl_1 leer sind.
Wahrscheinlich gibt es eine bessere Lösung um die Abfrage etwas zu beschleunigen aber leider komme ich nicht drauf.
Vielleicht kann mir ein Profi einen Tipp geben.
Vielen Dank
Gebhard
Mich beschäftigt momentan das abfragen von mehreren Tabellen aus einer phpmyadmin DB.
Ich habe 5 Tabellen mit Inhalt.
tbl_gtuchDE1, tbl_gtuchDE2, tbl_gtuchDE3, tbl_gtuchDE4, tbl_gtuchDE5
Ich Frage im moment so ab:
VB.NET-Quellcode
- Private Sub UserForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- Dim AktFldNme As String = String.Empty
- Dim MyReader As MySqlDataReader = Nothing
- Dim cmd As New MySqlCommand
- Dim table As New DataTable
- Dim sql As String = "SELECT tnk1lwt, tnk2lwt, tnk3lwt, tnk1phw, tnk2phw, tnk3phw, tnk1temp,
- tnk2temp, tnk3temp, tnk1fmz, tnk2fmz, tnk3fmz, tnk1anmerk, tnk2anmerk, tnk3anmerk, datum, username, bearbam,
- datumDE5, datumDE4, datumDE3, datumDE2, datumDE1, gummituchDE5, gummituchDE4, gummituchDE3, gummituchDE2, gummituchDE1,
- usernameDE5, usernameDE4, usernameDE3, usernameDE2, usernameDE1, ueberrollungenDE5, ueberrollungenDE4, ueberrollungenDE3,
- ueberrollungenDE2, ueberrollungenDE1 FROM tbl_tank_feucht, tbl_gtuchDE5, tbl_gtuchDE4, tbl_gtuchDE3, tbl_gtuchDE2, tbl_gtuchDE1"
- Try
- If OpenDB() Then
- cmd = New MySqlCommand With {
- .Connection = Conn,
- .CommandText = sql
- }
- MyReader = cmd.ExecuteReader
- With MyReader
- While .Read
- For N As Integer = 0 To .FieldCount - 1
- AktFldNme = .GetName(N)
- Select Case AktFldNme.ToLower
- 'Feuchtmittelraum
- Case "datum".ToLower
- lblDatum.Text = .GetDateTime(N).ToString("d") '"dd/MM/yyyy HH:mm:ss"
- Case "tnk1lwt".ToLower
- lbltnk1lwt.Text = .GetInt32(N).ToString("D")
- Case "tnk1phw".ToLower
- lbltnk1phw.Text = .GetDecimal(N).ToString("F2")
- Case "tnk1temp".ToLower
- lbltnk1temp.Text = .GetDecimal(N).ToString("F1")
- Case "tnk1fmz".ToLower
- lbltnk1fmz.Text = .GetString(N)
- Case "tnk1anmerk".ToLower
- lbltnk1anmerk.Text = .GetString(N)
- Case "tnk2lwt".ToLower
- lbltnk2lwt.Text = .GetInt32(N).ToString("D")
- Case "tnk2phw".ToLower
- lbltnk2phw.Text = .GetDecimal(N).ToString("F2")
- Case "tnk2temp".ToLower
- lbltnk2temp.Text = .GetDecimal(N).ToString("F1")
- Case "tnk2fmz".ToLower
- lbltnk2fmz.Text = .GetString(N)
- Case "tnk2anmerk".ToLower
- lbltnk2anmerk.Text = .GetString(N)
- Case "tnk3lwt".ToLower
- lbltnk3lwt.Text = .GetInt32(N).ToString("D")
- Case "tnk3phw".ToLower
- lbltnk3phw.Text = .GetDecimal(N).ToString("F2")
- Case "tnk3temp".ToLower
- lbltnk3temp.Text = .GetDecimal(N).ToString("F1")
- Case "tnk3fmz".ToLower
- lbltnk3fmz.Text = .GetString(N)
- Case "tnk3anmerk".ToLower
- lbltnk3anmerk.Text = .GetString(N)
- Case "username".ToLower
- lblusername.Text = .GetString(N)
- Case "bearbam".ToLower
- lblbearbam.Text = .GetDateTime(N).ToString("d")
- Case "bearbam".ToLower
- lblbearbamzeit.Text = .GetDateTime(N).ToLongTimeString
- 'Druckerei
- Case "datumDE5".ToLower
- txtdatumde5.Text = .GetDateTime(N)
- Case "gummituchDE5".ToLower
- txtgtuchDE5.Text = .GetString(N)
- Case "usernameDE5".ToLower
- txtUsernameDE5.Text = .GetString(N)
- Case "ueberrollungenDE5".ToLower
- txtumrDE5.Text = .GetDecimal(N).ToString("n0")
- Case "datumDE4".ToLower
- txtdatumde4.Text = .GetDateTime(N)
- Case "gummituchDE4".ToLower
- txtgtuchDE4.Text = .GetString(N)
- Case "usernameDE4".ToLower
- txtUsernameDE4.Text = .GetString(N)
- Case "ueberrollungenDE4".ToLower
- txtumrDE4.Text = .GetDecimal(N).ToString("n0")
- Case "datumDE3".ToLower
- txtdatumde3.Text = .GetDateTime(N)
- Case "gummituchDE3".ToLower
- txtgtuchDE3.Text = .GetString(N)
- Case "usernameDE3".ToLower
- txtUsernameDE3.Text = .GetString(N)
- Case "ueberrollungenDE3".ToLower
- txtumrDE3.Text = .GetDecimal(N).ToString("n0")
- Case "datumDE2".ToLower
- txtdatumde2.Text = .GetDateTime(N)
- Case "gummituchDE2".ToLower
- txtgtuchDE2.Text = .GetString(N)
- Case "usernameDE2".ToLower
- txtUsernameDE2.Text = .GetString(N)
- Case "ueberrollungenDE2".ToLower
- txtumrDE2.Text = .GetDecimal(N).ToString("n0")
- Case "datumDE1".ToLower
- txtdatumde1.Text = .GetDateTime(N)
- Case "gummituchDE1".ToLower
- txtgtuchDE1.Text = .GetString(N)
- Case "usernameDE1".ToLower
- txtUsernameDE1.Text = .GetString(N)
- Case "ueberrollungenDE1".ToLower
- txtumrDE1.Text = .GetDecimal(N).ToString("n0")
- End Select
- Next
- End While
- End With
- End If
- Catch ex As Exception
- MsgBox(ex.Message, MsgBoxStyle.Critical, "Error [" & ex.GetType.Name & ", Akt. Feld: """ & AktFldNme & """]")
- Finally
- If MyReader IsNot Nothing Then
- MyReader.Close()
- MyReader = Nothing
- End If
- If cmd IsNot Nothing Then
- cmd.Dispose()
- cmd = Nothing
- End If
- If Conn IsNot Nothing Then
- Conn.Close()
- Conn.Dispose()
- Conn = Nothing
- End If
- End Try
- End Sub
Wenn ich das Programm laufen lasse, benötigt die Abfrage mind. 1 Minute bis die Einträge in der From erscheinen obwohl in der DB gerademal 550 Einträge vorhanden sind und tbl_3 bis tbl_1 leer sind.
Wahrscheinlich gibt es eine bessere Lösung um die Abfrage etwas zu beschleunigen aber leider komme ich nicht drauf.
Vielleicht kann mir ein Profi einen Tipp geben.
Vielen Dank
Gebhard