現在、データベースにアクセスするための値を保存しています。これには 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;
}
}