Visual studio 2010 x64位版本的Microsoft.Jet.OLEDB.4.0提供程序的替代解决方案
我目前正在将值保存到access数据库,为此我使用了Microsoft.Jet.OLEDB.4.0提供程序,我在visual studio中的项目中配置了从任何cpu到x86的平台模式,它在x86平台上运行良好,但当我使用nunit启动单元测试时,它不接受x86平台,nunit显示错误 “UnitTest\u Finance.Test.Class1.InsertCashPayment: System.InvalidOperationException:“Microsoft.Jet.OLEDB.4.0”提供程序未在本地计算机上注册。“ 现在,我想要在使用nunit执行单元测试时处理此错误的替代方法 这是我的代码,仅供参考Visual studio 2010 x64位版本的Microsoft.Jet.OLEDB.4.0提供程序的替代解决方案,visual-studio-2010,c#-4.0,ms-access,nunit,oledb,Visual Studio 2010,C# 4.0,Ms Access,Nunit,Oledb,我目前正在将值保存到access数据库,为此我使用了Microsoft.Jet.OLEDB.4.0提供程序,我在visual studio中的项目中配置了从任何cpu到x86的平台模式,它在x86平台上运行良好,但当我使用nunit启动单元测试时,它不接受x86平台,nunit显示错误 “UnitTest\u Finance.Test.Class1.InsertCashPayment: System.InvalidOperationException:“Microsoft.Jet.OLEDB.4
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;
}
}
Jet数据库引擎没有64位版本,因此64位应用程序必须使用64位版本的(ACE),并像这样调用它
Provider=Microsoft.ACE.OLEDB.12.0;
ACE还有一个32位版本,因此使用ACE的应用程序可以在32位和64位环境中工作。还请注意,Jet不推荐用于新的应用程序。这有助于我安装Acess数据库引擎(ACE)。