SQL Abfrage mit OleDb Provider funktioniert nicht

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von mmgg.

    SQL Abfrage mit OleDb Provider funktioniert nicht

    Hallo Community,

    Ich hoffe der Post ist hier richtig, denn ich benutze das Forum zum ersten mal.

    Ich habe folgendes Problem:
    Mein Programmcode baut Verbindung mit einer Access Datenbank auf via OleDb. Wenn ich folgende Windows Form Debugge oder Erstelle, wird nichts aus der Datenbank geladen. Ausserdem ist cmd.ExecutedQueries = 0. In anderen Modulen, funktioniert das updaten und erstellen von Datensätzen problemlos.
    Was mache ich falsch?

    Code:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Imports System.Data.OleDb
    2. Public Class Hauptfenster
    3. 'Bei Initialisieren des Hauptfensters eingeleitet
    4. Private Sub Hauptfenster_Initialize(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    5. 'Überschriften für die einzelnen Spalten
    6. With Me.ListView1.Columns
    7. .Add("Auftragsnummer")
    8. .Add("Firma")
    9. .Add("Auftragswert")
    10. End With
    11. 'lade nun aufträge
    12. laden()
    13. End Sub
    14. Sub laden()
    15. Dim con As New OleDbConnection
    16. Dim cmd As New OleDbCommand
    17. Dim reader As OleDbDataReader
    18. 'Verbindung zur Datenbank
    19. con.ConnectionString =
    20. "Provider=Microsoft.ACE.OLEDB.12.0;" &
    21. "Data Source=C:\Users\Sebastian\Dropbox\Desktop\test.accdb;"
    22. cmd.Connection = con
    23. Try
    24. con.Open()
    25. 'Hole alle vorhandenen aufträge aus tabelle auftraege
    26. cmd.CommandText = "select * from auftraege"
    27. Debug.Print(cmd.CommandText & vbCrLf & "Executed Queries: " & cmd.ExecuteNonQuery)
    28. 'Erstelle den auftrag
    29. Dim auftrag As New ListViewItem
    30. reader = cmd.ExecuteReader
    31. reader.Read()
    32. 'Listview leeren und optionen
    33. ListView1.Items.Clear()
    34. ListView1.View = View.Details
    35. ListView1.BeginUpdate()
    36. 'füge zur listview hinzu
    37. Do While reader.Read
    38. 'deklariere variablen
    39. Dim auftragsnummer As String = reader("auftragsnummer")
    40. Dim firma As String = reader("firma")
    41. Dim wert As String = reader("wert")
    42. auftrag = New ListViewItem(auftragsnummer)
    43. auftrag.UseItemStyleForSubItems = False
    44. auftrag.SubItems.Add(firma)
    45. auftrag.SubItems.Add(wert)
    46. ListView1.Items.Add(auftrag)
    47. Loop
    48. reader.Close()
    49. ListView1.EndUpdate()
    50. Catch ex As Exception
    51. MessageBox.Show(ex.Message)
    52. Exit Sub
    53. End Try
    54. con.Close()
    55. End Sub
    56. 'wird eingeleitet wenn "Aüfträge laden betätigt wird
    57. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    58. laden()
    59. End Sub
    60. 'ruft das Aufträge hinzufügen Fenster auf
    61. Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
    62. auftrag_hinzufuegen.ShowDialog()
    63. End Sub
    64. End Class



    Die Ausgabe der Debug-Konsole sie wie folgt aus:
    Spoiler anzeigen

    Quellcode

    1. "KIT Project.exe" (CLR v4.0.30319: DefaultDomain): "C:\Windows\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll" geladen. Das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
    2. "KIT Project.exe" (CLR v4.0.30319: DefaultDomain): "C:\Users\Sebastian\Dropbox\Bronection\KIT Project\KIT Project\bin\Debug\KIT Project.exe" geladen. Symbole wurden geladen.
    3. "KIT Project.exe" (CLR v4.0.30319: KIT Project.exe): "C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.VisualBasic\v4.0_10.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualBasic.dll" geladen. Das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
    4. "KIT Project.exe" (CLR v4.0.30319: KIT Project.exe): "C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll" geladen. Das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
    5. "KIT Project.exe" (CLR v4.0.30319: KIT Project.exe): "C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll" geladen. Das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
    6. "KIT Project.exe" (CLR v4.0.30319: KIT Project.exe): "C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\System.Windows.Forms.dll" geladen. Das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
    7. "KIT Project.exe" (CLR v4.0.30319: KIT Project.exe): "C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Drawing\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll" geladen. Das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
    8. "KIT Project.exe" (CLR v4.0.30319: KIT Project.exe): "C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Runtime.Remoting\v4.0_4.0.0.0__b77a5c561934e089\System.Runtime.Remoting.dll" geladen. Das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
    9. "KIT Project.exe" (CLR v4.0.30319: KIT Project.exe): "C:\Windows\Microsoft.Net\assembly\GAC_32\System.Data\v4.0_4.0.0.0__b77a5c561934e089\System.Data.dll" geladen. Das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
    10. "KIT Project.exe" (CLR v4.0.30319: KIT Project.exe): "C:\Windows\Microsoft.Net\assembly\GAC_32\System.Transactions\v4.0_4.0.0.0__b77a5c561934e089\System.Transactions.dll" geladen. Das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
    11. "KIT Project.exe" (CLR v4.0.30319: KIT Project.exe): "C:\Windows\Microsoft.Net\assembly\GAC_32\System.EnterpriseServices\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.EnterpriseServices.dll" geladen. Das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
    12. "KIT Project.exe" (CLR v4.0.30319: KIT Project.exe): "C:\Windows\Microsoft.Net\assembly\GAC_32\System.EnterpriseServices\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.EnterpriseServices.Wrapper.dll" geladen. Das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
    13. "KIT Project.exe" (CLR v4.0.30319: KIT Project.exe): "C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll" geladen. Das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
    14. "KIT Project.exe" (CLR v4.0.30319: KIT Project.exe): "C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll" geladen. Das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
    15. select * from auftraege
    16. Executed Queries: 0
    17. "KIT Project.exe" (CLR v4.0.30319: KIT Project.exe): "C:\Windows\Microsoft.Net\assembly\GAC_MSIL\mscorlib.resources\v4.0_4.0.0.0_de_b77a5c561934e089\mscorlib.resources.dll" geladen. Das Modul wurde ohne Symbole erstellt.
    18. Das Programm "[5196] KIT Project.exe" wurde mit Code 0 (0x0) beendet.



    Würde mich freuen wenn jemand eine Antwort hat.

    Danke und viele Grüße
    Woodl
    Ich kann dir nur von deiner ganzen Vorgehensweise abraten.
    Um sich in Datenbänkerei effektiv einzarbeiten sollte man, bevor man überhaupt eine DB zugreift, eine Menge anderen Stoffes lernen.
    Sonst fängt man es so an wie du, und verbaut sich damit alle Möglichkeiten fortgeschrittener Datenbänkerei (Trennung von Daten und Oberfläche, designergestütztes komplexes Databinding, typ-sichere Datenverarbeitung).

    Arbeite mal Datenverarbeitungs-Vorraussetzungen Stück für Stück durch, zB. dass du Option Strict off proggst sieht man schon an deim codeschnipsel.
    ExecuteNonquery ist deshalb 0 weil:
    "Bei den Anweisungen UPDATE, INSERT und DELETE ist der Rückgabewert die Anzahl der vom Befehl betroffenen Zeilen", Ein Select ist eben nicht dabei , das findest du hier
    msdn.microsoft.com/de-de/libra…nquery%28v=vs.110%29.aspx

    Wenn Du an der Stelle die Anzhal brauchst, nimm einen DataReader und das SELECt muss dann so ausshehen
    SELECT COUNT(*) AS AnzahlDS FROM DeienTablle
    ....
    ......
    MessageBox.Show("" & myReader!AnzahlDS )

    Dein Code hat schon so seine Böcke, sollte aber was anzeigen in der ListView.
    JonDonym
    Eine Anonymisierung-Tool, das nicht nur deine IP verdeckt, sondern deine History, BrowserTyp, Windows-Version etc.
    Das Tool hat ca. 5 FreeKaskaden und ca. 10 Premium. Minimum 5 EUR für ein Volumen von 650MB.