在c#中,我应该如何关闭正在运行的线程(Access DB)
本文关键字:线程 Access DB 运行 我应该 何关闭 | 更新日期: 2023-09-27 18:02:07
VS 2008/c#/MS Access 2003/2007
我已经附加了在释放模式上抛出异常的代码片段。在调试模式下,应用程序运行良好。
为了测试这段代码,我转向控制台应用程序。当我运行应用程序时,它显示MS Access DB已经在使用中。
所以,在执行这段代码之前,我需要杀死MS Access DB进程。无论是否正在使用,我都需要终止所有的缓冲区进程。
在执行这段代码之前,我应该如何终止进程?
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);
}
我怀疑问题是如果在主块中引发异常,您不会关闭连接。尝试将access1.CloseCurrentDatabase();在finally块中。
EDIT如果你真的想终止进程,那么你可以使用process . kill。但我不建议这样做,因为这样可能会导致用户丢失数据。