[ C# ] 解決 ‘Microsoft.ACE.OLEDB.12.0’ 提供者並未登錄於本機電腦上的問題

論文系統中,Access 檔案匯入的功能中使用的連結字串語法

圖片

 

其中 “Microsoft.ACE.OLEDB.12.0″ 使用了Access Database Engine 2010 來開啟檔案

所以若未安裝 Microsoft Access 2010 或 Access Database Engine 2010 (含以上)等套件

則會碰到 提供者並未登錄於本機電腦上 的問題!

=======================================================

解決之道就是

到微軟網站下載並安裝 “Microsoft Access Database Engine 2010 可轉散發套件"

Done!

 

附上參考部落格

 

[ C# ] 資料庫程式連接方式

今天在撰寫程式與資料庫溝通時找到一篇整理的很好的文章

以下筆記了幾種資料庫 (Access, SQL, MySQL) 的連結方式:

  1. 連接 Accessusing System.Data.OleDb;

    String strCon =
              “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + 檔案名稱 + “.mdb;" ;
    OleDbConnection AccessCon = new OleDbConnection(strCon);
    AccessCon.Open() ;           // 開啟資料庫連接

    AccessCon.Close() ;          // 關閉對資料庫連接

  2. 連接 Excel

    using System.Data.OleDb;

    String strCon =
              “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + 檔案名稱 +
    “.xls;ExtendedProperties=Excel 8.0;" ;

    OleDbConnection ExcelCon = new OleDbConnection(strCon);
    ExcelCon.Open();

    ExcelCon.Dispose();                // 釋放 Component 所使用的資源

  3. 連接 SQL Severusing System.Data.SqlClient;

    // 用 Windows 身份驗證
    String strCon =
              “Data Source=(local);Initial Catalog=TestDb;Integrated Security=SSPI;" ;

    // 用 SQL Server 身份驗證
    String strCon =
    @“Data Source=.\SQLExpress;Database=TestDb;Uid=user;Pwd=****;" ;

    SqlConnection SqlSvrCon = new SqlConnection(strCon);
    SqlSvrCon.Open();

    SqlSvrCon.Close();

  4. 連接 MySQL
    要連接 MySQL 前需先加入參考 ( Mysql.Data.dll )
    using MySql.Data.MySqlClient;MySqlConnection my_DB_Connection;
    string myConnection_DB_String;

    myConnection_DB_String = String.Format(
           “server={0};user id={1}; password={2}; database={3}; pooling=false",
           “127.0.0.1″, “root", “xxxx", “testDB"); // 連結mdb之字串
    my_DB_Connection = new MySqlConnection(myConnection_DB_String);
    my_DB_Connection.Open();

    my_DB_Connection.Close();

  • p.s. 綠字部分為自行修改的檔案名稱、使用者帳號或密碼。

參考文章:隨便寫寫的新天地