dbf file mit vb.net auslesen

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    dbf file mit vb.net auslesen

    Hey, ich bin zurzeit an einem Projekt und dafür muss ich dbf files auslesen und deren Inhalte verwenden.
    Ich habe nur keine Ahnung wie genau ich das handhaben soll.
    Im Internet stand schon etwas unter mapwindow.org/phorum/read.php?3,1072 jedoch kam ich an dem Punkt mit Provider nicht weiter.
    Erstmal:
    Ist das der richtige Weg um die dbf Dateien (ohne tatsächliche Datenbank auf dem rechner) zu benutzen?
    -wenn nein:
    wie dann?
    -Wenn ja:
    was muss ich bei provider beachten bzw. wie ist die lösung des Problems, denn wenn ich den Provider aus dem Code verwende (Provider=Microsoft.Jet.OLEDB.4.0) kommt es zur folgenden Meldung:
    "Der 'Microsoft.Jet.OLEDB,4,0'-Provider ist nicht auf dem lokalen Computer registriert."

    Danke schonmal im vorraus

    rocksas1995 schrieb:

    "Der 'Microsoft.Jet.OLEDB,4,0'-Provider ist nicht auf dem lokalen Computer registriert."
    Da gibt es 2 Möglichkeiten:
    1. Der Provider ist nicht installiert.
      Lade ihn runter und installiere ihn.
    2. Es besteht einn x86-x64-Konflikt.
      Stell Deine Applikation um auf x86 bzw. x64 (nicht aber AnyCPU) unt try again.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    rocksas1995 schrieb:

    und wo genau
    Frag Frau Google nach Microsoft Jet OLE DB-Provider, Download, Version, ...
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich formuliere die Frage einfach mal neu:
    Ich möchte mit dem Visual Studio 2008 eine dbf Datei öffnen (ADAPTER.dbf).
    Diese hat 3 Spalten (Nr,Menge,Wert)
    bisher habe ich versucht eine anwendung (x84) mit dem connection string:

    VB.NET-Quellcode

    1. Dim FilePath as String =C:\Users\Me\Desktop
    2. Dim ConnString as String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Filepath & ";User=Admin;Passwort="


    Zu verwenden, allerdings kommt es dabei zur fehlermeldung "Installierbares ISAM nicht gefunden.".
    Bei einer 64 Bit anwendung kommt es zur fehlermeldung "der microsoft.jet.oledb.4.0-provider ist nicht auf dem lokalen computer registriert".
    bei dieser Fehlermeldung sagte mir GOOGLE, dass es den Provider für 64 Bit nicht gäbe.
    also mache ich dies als x84.

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

    ist ganz egal, welche Spalten deine dbf-Tabellen haben.
    Was du als erstes brauchst ist ein geeigneter Connectionstring.
    Und wie's aussieht ist OledBb nicht geeignet. Aber vlt. irre ich mich, und ACE-OleDb ist doch geeignet.
    Egal - wo man derlei Connectionstrings findet, ist dir ja bereits gesagt worden.

    rocksas1995 schrieb:

    Ich formuliere die Frage einfach mal neu


    Gegenfrage: musst Du nur 1x an die Daten ran oder permanent mit ihnen arbeiten?
    Im ersten Fall solltest Du die Datenbank einfach in ein modernes Format konvertieren. Immerhin ist .dbf ein über 30 Jahre altes Konstrukt und über dBase Datenbanken redet heute niemand mehr.
    Andernfalls, wenn Du also damit arbeiten musst (Glückwunsch *ggg*), dann hier entlang: LINK, LINK, LINK, usw usw ..

    simpelSoft schrieb:

    Andernfalls, wenn Du also damit arbeiten musst (Glückwunsch *ggg*), dann hier entlang: LINK, LINK, LINK, usw usw ..
    Die verwenden auch alle Jet und kannst damit vergessen.

    Außer dem ersten Link, den ich relativ clever finde.
    Allerdings weiß ich nicht inwieweit diese Zu-Fuß-Methode mit allen dBase-Versionen kompatibel ist.

    Aber oben wurden ja auch die Connectionstrings für die Nicht-Jet-Varianten veröffentlicht.

    rocksas1995 schrieb:

    dass es den Provider für 64 Bit nicht gäbe.
    also mache ich dies als x84.
    Es hilft in diesem Fall nichts, wenn du die Anwendung auf x86 umstellst.
    Du müsstest ein 32-Bit-Betriebssystem installieren, da der ODBC-Treiber ins System integriert wird.

    Wenn du nichts anderes findest, versuch es mit dem Access-Redistributable-Kit
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „petaod“ ()