在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);
    }

在c#中,我应该如何关闭正在运行的线程(Access DB)

我怀疑问题是如果在主块中引发异常,您不会关闭连接。尝试将access1.CloseCurrentDatabase();在finally块中。

EDIT如果你真的想终止进程,那么你可以使用process . kill。但我不建议这样做,因为这样可能会导致用户丢失数据。