VS 2008/C#/ MS Access 2003/2007在C#中,我應該如何關閉正在運行的線程(Access數據庫)?
我附上了在發佈模式下拋出異常的代碼片段。在調試模式下,應用程序效果很好。
爲了測試這段代碼,我轉到了控制檯應用程序。當我運行該應用程序時,它顯示MS Access DB已在使用中。
因此,在執行這段代碼之前,我需要殺死MS Access數據庫進程。無論是否在使用,我需要殺死所有的緩衝過程。
我應該在執行這段代碼之前殺死進程?
try
{
Access.Application access1 = new Access.Application();
// Open the Access database for exclusive access
string sSalisburyAccessDB = Server.MapPath("~/App_Data/Salisbury.mdb");
access1.OpenCurrentDatabase(sSalisburyAccessDB, true, null);
// Drop the existing table data
access1.DoCmd.DeleteObject(Access.AcObjectType.acTable, "drug");
access1.DoCmd.DeleteObject(Access.AcObjectType.acTable, "patplan");
access1.DoCmd.DeleteObject(Access.AcObjectType.acTable, "plans");
access1.DoCmd.DeleteObject(Access.AcObjectType.acTable, "price");
access1.DoCmd.DeleteObject(Access.AcObjectType.acTable, "rx");
access1.DoCmd.DeleteObject(Access.AcObjectType.acTable, "patient");
access1.DoCmd.DeleteObject(Access.AcObjectType.acTable, "plntrak");
// Run the saved import
access1.DoCmd.RunSavedImportExport("SalisburyODBC");
// Close the database
access1.CloseCurrentDatabase();
// Quit MS Access
access1.Quit(Access.AcQuitOption.acQuitSaveAll);
Response.Write("successful");
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
我沒有看到任何可能無法自動執行Access的情況。也就是說,您可以使用DAO刪除表,並且可以使用普通的舊SQL語句導入/導出數據。自動化訪問看起來對我來說過分了。 –