SQL (erneut) einbinden klappt nicht

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Pucki.

    SQL (erneut) einbinden klappt nicht

    Moin,
    sorry, dass ich mich hier so doof oute.
    Hab von Win7 auf Win11 aufgerüstet, neuen PC, alles migriert.
    Hab ein altes VB10 Projekt, in dem verwendete ich System.Data.SQlite.dll. Ich hatte die DLL nicht als Lokale Kopie eingebunden damals. Hab Sie aber noch in dem Folder, der für die Installation des Projektes zuständig ist original gehabt. (V1.0.119.0)
    Das neu installierte Programm verwendet die auch und läuft nach Installation, nur in der IDE klappt das nicht.
    So hab ichs gemacht: die vorhandene DLL ins VS10 Hauptverzeichnis, in der IDE Link/Verweis dorthin gesetzt.
    Wenn ich in der IDE nun das Programm starte, dann kommt die Meldung:
    {"Die DLL "SQLite.Interop.dll": Das angegebene Modul wurde nicht gefunden. (Ausnahme von HRESULT: 0x8007007E) kann nicht geladen werden."}
    SQLite.Interop.dll hatte ich früher nicht verwendet oder gebraucht, war auch nie im Projekt verlinkt.
    Bevor ich die zusätzlich einbinde würde ich gerne verstehen, was mein Fehler ist und wie ich den beheben kann.
    Vielen Dank für Eure Hilfe!
    Thomas

    Coldfire schrieb:

    Hast du in der Projetverwaltung unter Verweise , Verweise hinzufüge die SQLite.dll hinzugefügt ?

    Ja, habe ich. Hab auch nochmal die Originaldateien aus dem Netz verglichen. Sind genau gleich groß. (Übrigens scheinen auch die X64 und 86 Versionen identisch zu sein.)

    Hab mal versuchsweise die interop.dll verlinken wollen, da das ja in der Fehlermeldung verlangt wird.
    Aber seltsamerweise lässt die sich nicht einbinden:
    "Es konnte kein Verweis auf ....\SQlite.interop.dll hinzugefügt werden.
    Stellen Sie sicher, dass auf die Datei zugegriffen werden kann und dass sie eine gültige Assembly oder COM-Komponente ist"

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „MigrationSucks“ ()

    Wirklich seltsam: Nun hab ich nochmal auf die .dll des installierten Programmes verwiesen, den link auf TRUE gesetzt (wurde nun ins Sub BIN kopiert) und nun läuft das Programm plötzlich in der IDE.
    Bin sicher, dass ich das schonmal versucht hatte.
    Das ganze finde ich etwas kryptisch. Naja, bin froh, dass es läuft.
    Vielen Dank für Eure Hilfsbereitschaft!
    Das geht unter VB-2022 auch anders.

    Ich füge immer die folgenden Dateien zu den Verweisen dazu.

    System.Data.SQLite.dll
    System.Data.SQLite.EF6.dll
    System.Data.SQLite.Linq.dll

    Dann
    Imports System.Data.SQLite

    Als erste Zeile jedes Frames und BAS-Modul.

    Und das war es.

    Folgenden Code in der GLOBAL.BAS

    Quellcode

    1. Public sql_conn As SQLiteConnection
    2. Public sql_cmd As SQLiteCommand
    3. Public sql_da As SQLiteDataAdapter
    4. Public sql_ds As DataSet
    5. Function db_schreiben(befehl As String)
    6. db_schreiben = ""
    7. sql_cmd.CommandText = befehl
    8. exi = sql_cmd.ExecuteScalar
    9. db_schreiben = ""
    10. End Function
    11. Function db_lesen(befehl As String)
    12. db_lesen = ""
    13. sql_cmd.CommandText = befehl
    14. exi = sql_cmd.ExecuteScalar
    15. If Not DBNull.Value.Equals(exi) Then db_lesen = sql_cmd.ExecuteScalar Else db_lesen = ""
    16. End Function


    Im Start-Frame des Programmes folgende SUB.

    Quellcode

    1. Sub db_ini()
    2. sql_dbpath = System.IO.Path.Combine(Application.StartupPath, "Datenbank.db")
    3. sql_conn = New SQLiteConnection("Data Source=" & sql_dbpath & ";")
    4. sql_cmd = New SQLiteCommand("", sql_conn)
    5. sql_da = New SQLiteDataAdapter(sql_cmd)
    6. sql_ds = New DataSet
    7. sql_commandBuilder = New SQLiteCommandBuilder(sql_da)
    8. End Sub


    Damit kann ich überall darauf zugreifen.

    z.b. : SO

    Quellcode

    1. sql_conn.open
    2. x = db_lesen("Select Feld_1 from Tabelle where id = 1") ' gibt de Inhalt von feld_1 an x aus.
    3. sql_conn.close


    Vielleicht hilft dir die Info ja irgendwie.



    Gruß

    Pucki

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Pucki“ ()