【问题标题】:Alternate solution of Microsoft.Jet.OLEDB.4.0 provider for x64 bit versionx64 位版本的 Microsoft.Jet.OLEDB.4.0 提供程序的替代解决方案
【发布时间】:2013-05-21 09:25:34
【问题描述】:

我目前正在保存值以访问数据库,为此我使用了 Microsoft.Jet.OLEDB.4.0 提供程序,并且我在 Visual Studio 的项目中将平台模式从任何 cpu 配置为 x86,它在 x86 平台上运行良好,但是当我使用 nunit 开始单元测试它不接受 x86 平台并且 nunit 显示错误

“UnitTest_Finance.Test.Class1.InsertCashPayment: System.InvalidOperationException : 'Microsoft.Jet.OLEDB.4.0' 提供程序未在本地计算机上注册。"

现在我想要在使用 nunit 执行单元测试时使用其他方法来处理此错误。

这是我的代码仅供参考

class RepairDLL
    {
        string dbConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/AutoRepairDB.mdb";


        //Method to Booking Value
        public virtual bool Insert_Data_Repair_History(EntityClass ec)
        {
            bool isInsert = false;

            //Connect to Database
            OleDbConnection connection = new OleDbConnection(dbConn);
            connection.Open();

            try
            {
                //Insert Customer Value
                string sql = "INSERT into [Repair_History] (FirstName,LastName,City,State,VehicleNo,LienseNo,RepairDate,Summary,Charge) "
                              + "VALUES ('" + ec.R_firstName + "','" + ec.R_lastName + "','" + ec.R_city + "','" + ec.R_state + "','" + ec.R_vehicleNo + "','" + ec.R_licenseNo + "','" + ec.R_date + "','" + ec.R_summary + "','" + ec.R_charge + "')";
                OleDbCommand command = new OleDbCommand(sql, connection);
                command.ExecuteNonQuery();
                connection.Close();

                isInsert = true;
            }
            catch
            {
                throw new Exception();

            }
            finally
            {
                // Close the connection
                if (connection != null)
                {
                    connection.Close();
                }
            }

            return isInsert;
        }
    }

【问题讨论】:

    标签: visual-studio-2010 c#-4.0 ms-access nunit oledb


    【解决方案1】:

    Jet 数据库引擎没有 64 位版本,因此 64 位应用程序必须使用 64 位版本的 Access Database Engine (ACE),并像这样调用它

    Provider=Microsoft.ACE.OLEDB.12.0;
    

    还有一个 32 位版本的 ACE,因此使用 ACE 的应用程序可以在 32 位和 64 位环境中运行。另请注意,新应用程序不推荐使用 Jet。

    【讨论】:

    • 这个link 帮助我安装了 Acess 数据库引擎 (ACE)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 2010-12-31
    • 2010-11-12
    相关资源
    最近更新 更多