Hallo Zusammen,
ich glaube ich mach da bei der Datenbankprogrammierung was falsch...
Also ich möchte das mein Programm Ordner durchsucht und dann schaut ob die Datein schon in der Datenbank vorhanden sind. Das funktioniert auch so weit. Leider bekomme ich jetzt eine Fehlermeldung die ich nicht so ganz nachvollziehen kann.
Wenn ich das richtig verstehe gibt es einen Timeout ? Liegt es daran das zu viele anfragen in zu kurzer Zeit gestellt werden? Ist es damit getan den Timeout beim MySql Server zu erhöhen? Oder liegt es doch an meiner Programmierung bzw. an den Abfragen und dem Insert?
Hier der Teil der für das auswählen der Ordner oder des Ordners verantwortlich ist:
Spoiler anzeigen
Und hier der Code womit ich die Daten überprüfe:
Spoiler anzeigen
Ich weiß es ist nicht gut aber darum wende ich mich ja auch ans Forum Ich denke bei den MySQL Sachen gibt es noch Optimierungsbedarf Aber ich bin froh das ich es überhaupt zum laufen gebracht habe
Danke,
Diabetiker
ich glaube ich mach da bei der Datenbankprogrammierung was falsch...
Also ich möchte das mein Programm Ordner durchsucht und dann schaut ob die Datein schon in der Datenbank vorhanden sind. Das funktioniert auch so weit. Leider bekomme ich jetzt eine Fehlermeldung die ich nicht so ganz nachvollziehen kann.
Wenn ich das richtig verstehe gibt es einen Timeout ? Liegt es daran das zu viele anfragen in zu kurzer Zeit gestellt werden? Ist es damit getan den Timeout beim MySql Server zu erhöhen? Oder liegt es doch an meiner Programmierung bzw. an den Abfragen und dem Insert?
Hier der Teil der für das auswählen der Ordner oder des Ordners verantwortlich ist:
VB.NET-Quellcode
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- Dim serie As String = ComboBox1.Text
- If serie = "Alle Serien" Then
- Dim server As String = INI_ReadValueFromFile("Einstellungen", "server", "", ".\cfg.ini")
- Dim user As String = INI_ReadValueFromFile("Einstellungen", "user", "", ".\cfg.ini")
- Dim passwort As String = INI_ReadValueFromFile("Einstellungen", "passwort", "", ".\cfg.ini")
- Dim datenbank As String = INI_ReadValueFromFile("Einstellungen", "datenbank", "", ".\cfg.ini")
- Dim myConnectionString2 As String
- Dim reader As MySql.Data.MySqlClient.MySqlDataReader
- myConnectionString2 = "server=" & server & ";uid=" & user & ";pwd=" & passwort & ";database=" & datenbank & ";"
- Dim myConnection2 As New MySqlConnection(myConnectionString2)
- Dim myInsertQuery2 As String = "SELECT * FROM serien WHERE status = 'ja' ORDER BY serienname"
- Dim myCommand2 As New MySqlCommand(myInsertQuery2)
- myCommand2.Connection = myConnection2
- myConnection2.Open()
- reader = myCommand2.ExecuteReader
- Do While reader.Read()
- Dim serienname As String = reader("serienname")
- indexierungserien(serienname)
- Loop
- myCommand2.Connection.Close()
- Else
- indexierungserien(serie)
- End If
- End Sub
Und hier der Code womit ich die Daten überprüfe:
VB.NET-Quellcode
- Public Sub indexierungserien(serie As String)
- Dim serienname As String = serie
- Dim server As String = INI_ReadValueFromFile("Einstellungen", "server", "", ".\cfg.ini")
- Dim user As String = INI_ReadValueFromFile("Einstellungen", "user", "", ".\cfg.ini")
- Dim passwort As String = INI_ReadValueFromFile("Einstellungen", "passwort", "", ".\cfg.ini")
- Dim datenbank As String = INI_ReadValueFromFile("Einstellungen", "datenbank", "", ".\cfg.ini")
- Dim myConnectionString2 As String
- Dim reader As MySql.Data.MySqlClient.MySqlDataReader
- myConnectionString2 = "server=" & server & ";uid=" & user & ";pwd=" & passwort & ";database=" & datenbank & ";"
- Dim myConnection2 As New MySqlConnection(myConnectionString2)
- Dim myInsertQuery2 As String = "SELECT * FROM serien WHERE serienname = '" & serienname & "'"
- Dim myCommand2 As New MySqlCommand(myInsertQuery2)
- myCommand2.Connection = myConnection2
- myConnection2.Open()
- reader = myCommand2.ExecuteReader
- Do While reader.Read()
- Dim pfad As String = reader("pfad")
- Dim pfadbackslash As String = Replace(pfad, "\", "\\\")
- Dim thetvdbapi As String = reader("thetvdbapi")
- Dim xrelapi As String = reader("xrelapi")
- ListBox1.Items.Add(pfad)
- For Each unterordner In My.Computer.FileSystem.GetDirectories(pfad)
- Dim arrayordner() As String = Split(unterordner, "\")
- Dim arrayordnerteile As String = arrayordner.Count - 1
- ListBox1.Items.Add(arrayordner(arrayordnerteile))
- For Each datein In My.Computer.FileSystem.GetFiles(unterordner)
- 'ListBox1.Items.Add(datein)
- Dim infoReader As System.IO.FileInfo
- infoReader = My.Computer.FileSystem.GetFileInfo(datein)
- Dim dateifilesize As String = infoReader.Length
- Dim arraydatei() As String = Split(datein, "\")
- Dim arraydateiteile As String = arraydatei.Count - 1
- Dim datei As String = arraydatei(arraydateiteile)
- Dim serieordner As String = arraydatei(arraydatei.Count - 2)
- Dim laenge As String = datei.Length - 4
- Dim releasename As String = datei.Substring(0, laenge)
- Dim myConnectionString As String
- myConnectionString = "server=" & server & ";uid=" & user & ";pwd=" & passwort & ";database=" & datenbank & ";"
- Dim myConnection As New MySqlConnection(myConnectionString)
- Dim myInsertQuery As String = "SELECT COUNT(*) FROM content WHERE datei = '" & datei & "'"
- Dim myCommand As New MySqlCommand(myInsertQuery)
- myCommand.Connection = myConnection
- myConnection.Open()
- Dim numb = CInt(myCommand.ExecuteScalar())
- If numb < 1 Then
- ListBox1.Items.Add(datei)
- myCommand.Connection.Close()
- '
- Dim myConnectionString3 As String
- myConnectionString3 = "server=" & server & ";uid=" & user & ";pwd=" & passwort & ";database=" & datenbank & ";"
- Dim myConnection3 As New MySqlConnection(myConnectionString3)
- Dim myInsertQuery3 As String = "INSERT INTO `davenet`.`content` (`id`, `typ`, `serie`, `serieordner`, `datei`, `releasename`, `pfad`, `quali`, `staffel`, `episode`, `titel`, `plot`, `filesize`, `releasegroup`, `videotype`, `audiotype`, `status`, `nzbdllink`, `retention`, `thetvdbapi`, `xrelapi`, `imdb`, `cover`, `erfasst`) VALUES (NULL, 'Serie', '" & serienname & "', '" & serieordner & "', '" & datei & "', '" & releasename & "', '" & pfadbackslash & "', NULL, NULL, NULL, NULL, NULL, '" & dateifilesize & "', NULL, NULL, NULL, NULL, NULL, NULL, '" & thetvdbapi & "', '" & xrelapi & "', NULL, NULL, NULL)"
- Dim myCommand3 As New MySqlCommand(myInsertQuery3)
- myCommand3.Connection = myConnection3
- myConnection3.Open()
- myCommand3.ExecuteNonQuery()
- myCommand3.Connection.Close()
- System.Threading.Thread.Sleep(500)
- '
- End If
- Next
- Next
- Loop
- myCommand2.Connection.Close()
- End Sub
Ich weiß es ist nicht gut aber darum wende ich mich ja auch ans Forum Ich denke bei den MySQL Sachen gibt es noch Optimierungsbedarf Aber ich bin froh das ich es überhaupt zum laufen gebracht habe
Danke,
Diabetiker