我目前正在保存访问数据库的值,我使用了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;
}
}
答案 0 :(得分:2)
没有64位版本的Jet数据库引擎,因此64位应用程序必须使用64位版本的Access Database Engine(ACE),并像这样调用它
Provider=Microsoft.ACE.OLEDB.12.0;
还有一个32位版本的ACE,因此使用ACE的应用程序可以在32位和64位环境中运行。另请注意,不推荐使用Jet作为新应用程序。