Wie verbinde ich mich mit einer MS Access Datei (mdb) mit C #?

Ich versuche, eine Verbindung zu einer MDB-Datei herzustellen, und ich verstehe, dass ich Microsoft.OLEDB.JET.4.0 Datenanbieter benötigen würde. Leider habe ich es nicht auf der (Universität) Maschine installiert. Da sie diesen Anbieter nicht bieten, glaube ich, dass es einen Weg geben sollte.

Wie kann ich mich ohne Microsoft.OLEDB.JET.4.0 mit der Datei verbinden oder gibt es eine Alternative?

Ich habe folgende Anbieter:

Verfügbare Ole DB-Anbieter

Ich habe versucht, OLE DB Provider for Microsoft Directory Services , zu dem beim Testen der Verbindung ‘Test erfolgreich, aber einige Einstellungen wurden vom Provider nicht akzeptiert’. Ich nahm diese Zeichenfolge und verwendete es trotzdem und ich bekam ADsDSOObject' failed with no error message available, result code: DB_E_ERRORSINCOMMAND(0x80040E14) .

Der einfachste Weg zur Verbindung ist über eine OdbcConnection mit Code wie diesem

 using System.Data.Odbc; using(OdbcConnection myConnection = new OdbcConnection()) { myConnection.ConnectionString = myConnectionString; myConnection.Open(); //execute queries, etc } 

wo myConnectionString ist so etwas

 myConnectionString = @"Driver={Microsoft Access Driver (*.mdb)};" + "Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=; 

Siehe ConnectionStrings

Als Alternative könnten Sie einen DSN erstellen und diesen DSN dann in Ihrer Verbindungszeichenfolge verwenden

  • Öffnen Sie die Systemsteuerung – Verwaltung – ODBC-Datenquellen-Manager
  • Gehen Sie zur System-DSN-Seite und fügen Sie einen neuen DSN hinzu
  • Wählen Sie den Microsoft Access-Treiber (* .mdb) und drücken Sie ENDE
  • Legen Sie den Namen des DSN fest (wählen Sie MyDSN für dieses Beispiel)
  • Wählen Sie die zu verwendende database aus
  • Probieren Sie die Befehle “Komprimieren” oder “Wiederherstellen” aus, um festzustellen, ob die Verbindung funktioniert

Jetzt könnte Ihr ConnectionString auf diese Weise geschrieben werden

 myConnectionString = "DSN=myDSN;" 

So verwenden Sie eine Jet OLEDB- oder Ace OLEDB Access DB:

 using System.Data; using System.Data.OleDb; string myConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=C:\myPath\myFile.mdb;" + "Persist Security Info=True;" + "Jet OLEDB:Database Password=myPassword;"; try { // Open OleDb Connection OleDbConnection myConnection = new OleDbConnection(); myConnection.ConnectionString = myConnectionString; myConnection.Open(); // Execute Queries OleDbCommand cmd = myConnection.CreateCommand(); cmd.CommandText = "SELECT * FROM `myTable`"; OleDbDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); // close conn after complete // Load the result into a DataTable DataTable myDataTable = new DataTable(); myDataTable.Load(reader); } catch (Exception ex) { Console.WriteLine("OLEDB Connection FAILED: " + ex.Message); } 

Sie sollten “Microsoft OLE DB Provider für ODBC-Treiber” verwenden, um auf Microsoft Access zuzugreifen. Hier ist das Beispiel-Tutorial zur Verwendung

http://msdn.microsoft.com/en-us/library/aa288452(v=vs.71).aspx

Welche Access File Erweiterung oder Sie verwenden? Der Jet OLEDB oder der Ace OLEDB. Wenn Ihre Access DB .mdb ist (alias Jet Oledb)

 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.Oledb namespace MembershipInformationSystem.Helpers { public class dbs { private String connectionString; private String OleDBProvider = "Microsoft.JET.OLEDB.4.0"; \\if ACE Microsoft.ACE.OLEDB.12.0 private String OleDBDataSource = "C:\\yourdb.mdb"; private String OleDBPassword = "infosys"; private String PersistSecurityInfo = "False"; public dbs() { } public dbs(String connectionString) { this.connectionString = connectionString; } public String konek() { connectionString = "Provider=" + OleDBProvider + ";Data Source=" + OleDBDataSource + ";JET OLEDB:Database Password=" + OleDBPassword + ";Persist Security Info=" + PersistSecurityInfo + ""; return connectionString; } } } 

Versuche dies..

 using System.Data.OleDb; OleDbConnection dbConn; dConn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Registration.accdb;"); 

Eine andere einfachste Möglichkeit zum Herstellen einer Verbindung besteht in einer OdbcConnection , die die Datei App.config wie folgt verwendet

     

MyDB.mdb ist meine databasedatei, und sie ist im aktuellen Hauptanwendungsordner mit der Haupt-EXE-Datei vorhanden.

Wenn Ihre MDF-Datei ein Passwort hat, verwenden Sie das wie folgt