Mein MySQL macht Stress mit VB.NET

  • VB6

    Mein MySQL macht Stress mit VB.NET

    Hallo

    habegerade mein Programm aus MSSQL-Server getestet. Ging. Dann habe ich über ODBC auf Access DB's zugegriffen. Ging. über diese ODBC verbindung kann ich nun auch eine Verbindunf zu dem MySQL Server herstellen. Das geht aber nicht noch teilweise. Habe aber nur eine Zeile veraendert. Hier bekomme ich Werte raus:

    <pre>
    Public Sub OpenDB()
    Dim ODBC_Command As String = "SELECT sBox FROM Boxes WHERE bHead = 0"
    Dim obCmd As OdbcCommand
    Dim obRd As OdbcDataReader
    Try
    Application.DoEvents()
    wMain.clbBoxes.Items.Clear()
    'Dialog wenn öffnet
    obCmd = New OdbcCommand(ODBC_Command, obCnODBC)
    obrd = obCmd.ExecuteReader()
    wSplash.lblEvent.Text = "Reading Boxes..."
    Application.DoEvents()
    Do While obRd.Read()
    Application.DoEvents()
    Dim i As Integer
    Dim Store As String
    Store = GetSetting(Application.ProductName & "\Users\" & UserName, "Boxes", Trim(obRd.Item("sBox")), "New")
    If Store = "True" Then
    wMain.clbBoxes.Items.Add(Trim(obRd.Item("sBox")), True)
    ElseIf Store = "New" Then
    SaveSetting(Application.ProductName & "\Users\" & UserName, "Boxes", Trim(obRd.Item("sBox")), "True")
    wMain.clbBoxes.Items.Add(Trim(obRd.Item("sBox")), True)
    ElseIf Store = "False" Then
    wMain.clbBoxes.Items.Add(Trim(obRd.Item("sBox")), False)
    End If
    wSplash.lblEvent.Text = "Reading Box " & Trim(obRd.Item("sBox"))
    Application.DoEvents()

    wMain.lblBoxCount.Text = wMain.clbBoxes.Items.Count
    wMain.stbpGetBoxes.Text = wMain.clbBoxes.Items.Count
    Loop
    Catch ex As Exception
    MsgBox("Error: " & ex.Message)
    End
    Finally
    obRd.Close()
    End Try
    End Sub
    </pre> Hier kommt ein Fehler, aber ohne beschreibung:<pre>
    Public Sub LoadSongs(ByVal FilterA As String, ByVal FilterB As String, ByVal FilterC As String)
    Dim Counter As Integer
    Dim ODBC_Command As String
    Dim obCmd As OdbcCommand
    Dim Songs As ListViewItem
    Dim obRd As OdbcDataReader
    lstvwSongs.Items.Clear()
    lstvwSongs.BeginUpdate()
    Try
    If FilterA = "" And FilterB = "" And FilterC = "" Then
    ODBC_Command = "SELECT * FROM Boxes WHERE (bHead <> 0)"
    Else
    ODBC_Command = "SELECT * FROM Boxes WHERE "
    If FilterA <> "" Then
    ODBC_Command += "(sSong LIKE '%" & FilterA & "%'"
    End If
    If FilterA <> "" And FilterB <> "" Then
    ODBC_Command += " AND sArtist LIKE '%" & FilterB & "%'"
    ElseIf FilterA = "" And FilterB <> "" Then
    ODBC_Command += "sArtist LIKE '%" & FilterB & "%'"
    End If
    If FilterA <> "" And FilterC <> "" Or FilterB <> "" And FilterC <> "" Then
    ODBC_Command += " AND sAlbum LIKE '%" & FilterC & "%'"
    ElseIf FilterA = "" And FilterC <> "" Or FilterB = "" And FilterC <> "" Then
    ODBC_Command += "sAlbum LIKE '%" & FilterC & "%'"
    End If
    ODBC_Command += ") AND (bHead <> 0)"
    End If
    ODBC_Command &= " ORDER BY sArtist"
    obCmd = New OdbcCommand(ODBC_Command, obCnODBC)
    obRd = obCmd.ExecuteReader
    wSplash.lblEvent.Text = "Reading items..."
    Application.DoEvents()
    Do While obRd.Read
    'MsgBox(obRd.Item("sBox"))
    Dim BoxSetting As String = GetSetting(Application.ProductName & "\Users\" & UserName, "Boxes", Trim(obRd.Item("sBox")), "True")
    If BoxSetting = "True" Then
    Application.DoEvents()
    Songs = wMain.lstvwSongs.Items.Add(Replace(obRd.Item("sSong"), "{-}", "'"))
    Songs.SubItems.Add(Replace(obRd.Item("sArtist"), "{-}", "'"))
    Songs.SubItems.Add(Replace(obRd.Item("sAlbum"), "{-}", "'"))
    Songs.SubItems.Add(Replace(obRd.Item("sGenre"), "{-}", "'"))
    Songs.SubItems.Add(Replace(obRd.Item("sPath"), "{-}", "'"))

    Counter += 1
    stbpGetSongs.Text = Counter
    lblSongCount.Text = Counter
    wSplash.lblEvent.Text = "Reading item " & Counter
    Application.DoEvents()
    End If
    Loop
    Catch ex As Exception
    MsgBox(ex.Message)
    Finally
    obRd.Close()
    End Try
    lstvwSongs.EndUpdate()
    stbpGetSongs.Text = Counter
    Application.DoEvents()
    lblSongCount.Text = Counter
    lstvwSongs.EndUpdate()
    wSplash.Timer1.Enabled = True
    End Sub
    </pre>

    Wieso geht der Mist hier nicht?

    Habe etwas getestet: obRd ist Leer. Was ist da kaputt. die SQL-Abfrage habeich getestet. Die Funktioniert.!!!