none
'Microsoft.Jet.OLEDB.4.0'-Provider ist nicht auf dem lokalen Computer registriert. RRS feed

  • Frage

  • Hallo,

    ich bekomme diesen Fehler.
      SQL Server 2012
      VS2012
      Win7 32 BIT

      Kein Office Access installiert, nur Office 2010 Standard. 
    Was kann ich tun?

       A) für Verbindung mit MDB
       B) Wie müsste ich den Connectionstring mit dem SQL Server für dieses Beispiel umbenennen?

              - SQL Server, SQL Server Express

       C) Was müsste ich installieren, zusätzlich installiert haben?

     const string SQL = "SELECT * FROM Kunden ORDER BY KundenCode";
                OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=Nordwind.mdb;");
                OleDbCommand cmd = new OleDbCommand(SQL, conn);
                OleDbDataReader dr;
                conn.Open();
                dr = cmd.ExecuteReader();
                string str;
                string tab = "  ";
                while (dr.Read())
                {
                    str = dr["KundenCode"] + tab;
                    str += dr["Firma"] + tab;
                    str += dr["Kontaktperson"] + tab;
                    str += dr["Strasse"] + tab;
                    str += dr["PLZ"] + tab;

    MSDN 1

    Was sagt google?

    Install Northwnd - SQL Server 2012   keine Express Version.

    Kurzum, die Frage.

      Wie stellt man die Voraussetzungen sicher? Wenn man es weiß geht das bestimmt in 30 Minuten.

    Grüße Sandra

    Danke jetzt schon für Tipps.

    Mittwoch, 10. Juni 2015 13:16

Antworten

  • Hallo Sandra,

    in den Projekteigenschaften im Reiter "Erstellen" als Zielplattform "x86" einstellen.

    Ich hab hier nur VS 2013, in VS 2012 sollte das aber an gleicher oder zumindest ähnlicher Stelle zu finden sein.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community


    Mittwoch, 10. Juni 2015 17:13
    Moderator

Alle Antworten

  • Hallo Sandra,

    sicher, dass Du ein 32 bit OS hast? Der Fehler kommt in der Regel eben bei einer 64 Bit Anwendung. Bei einer 32 Bit Anwendung musst Du eigentlich gar nichts installieren, um "Microsoft.Jet.OLEDB.4.0" zu verwenden. Die Jet Engine ist von Haus aus vorhanden.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Mittwoch, 10. Juni 2015 14:09
    Moderator
  •    B) Wie müsste ich den Connectionstring mit dem SQL Server für dieses Beispiel umbenennen?

    Hallo Sandra,

    siehe http://www.connectionstrings.com/sql-server/ , wobei man hier den SqlClient verwendet, nicht unbedingt OleDB.

    JET ist schon etwas viel älter und gibt es nicht für 64 Bit Systeme. Besser man verwendet den neuer ACE: Microsoft Access Database Engine 2010 Redistributable
    Änderung am Connection String findest Du hier: http://www.connectionstrings.com/access/


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Mittwoch, 10. Juni 2015 14:15
  • Hallo Olaf,

    ACE muss man aber, im Gegensatz zu JET immer zwingend noch separat installieren und dabei dann auch immer auf eine ggfs. installierte Office Variante (32 oder 64 Bit) achten. Wenn bspw. Office 64 Bit vorhanden ist, muss ACE auch als 64 Bit Version installiert werden und ist dann nicht mehr in 32 Bit Anwendungen verfügbar (umgekehrt auch nicht)


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community


    Mittwoch, 10. Juni 2015 14:17
    Moderator
  • sicher, dass Du ein 32 bit OS hast? Der Fehler kommt in der Regel eben bei einer 64 Bit Anwendung. Bei einer 32 Bit Anwendung musst Du eigentlich gar nichts installieren, um "Microsoft.Jet.OLEDB.4.0" zu verwenden. Die Jet Engine ist von Haus aus vorhanden.



    Hallo Stefan,

    ja hast Recht ;-) Betriebssystem 64 Bit
    VS2012 als 32 Bit installiert.

    C:\Program Files(x86)

    Was ist dann konkret zu tun?

    Viele Grüße
       Sandra


    Mittwoch, 10. Juni 2015 16:32
  • Hallo Sandra,

    in den Projekteigenschaften im Reiter "Erstellen" als Zielplattform "x86" einstellen.

    Ich hab hier nur VS 2013, in VS 2012 sollte das aber an gleicher oder zumindest ähnlicher Stelle zu finden sein.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community


    Mittwoch, 10. Juni 2015 17:13
    Moderator
  • in den Projekteigenschaften im Reiter "Erstellen" als Zielplattform "x86" einstellen.

    Ich hab hier nur VS 2013, in VS 2012 sollte das aber an gleicher oder zumindest ähnlicher Stelle zu finden sein.

    Hallo,

    from Any CPU to x86.

    1 Minute wenn man es weiß;-)

    Danke und Grüße Sandra


    • Bearbeitet Sandra Maier Freitag, 12. Juni 2015 11:13 Format
    Freitag, 12. Juni 2015 11:13