Database 在打开然后关闭后删除ADOX数据库

Database 在打开然后关闭后删除ADOX数据库,database,vb.net,Database,Vb.net,我启动应用程序,选择数据库>新建并保存文件。然后,我执行完全相同的操作,保存旧文件,但出现错误: 进程无法访问文件C:\test.mdb,因为另一个进程正在使用该文件 这个过程就是应用程序本身,它确实调用了.Close()。此错误仅在使用相同文件名的情况下发生第二次。如果我做了一个新的test.mdb、test1.mdb,然后又做了一次test.mdb,那么它就会出错,这意味着它仍然保持它们全部打开 代码如下: Public catalog As New ADOX.Catalog Public

我启动应用程序,选择数据库>新建并保存文件。然后,我执行完全相同的操作,保存旧文件,但出现错误:

进程无法访问文件
C:\test.mdb
,因为另一个进程正在使用该文件

这个过程就是应用程序本身,它确实调用了
.Close()
。此错误仅在使用相同文件名的情况下发生第二次。如果我做了一个新的test.mdb、test1.mdb,然后又做了一次test.mdb,那么它就会出错,这意味着它仍然保持它们全部打开

代码如下:

Public catalog As New ADOX.Catalog
Public database As New ADODB.Connection

Private Sub mnuDatabaseNew_Click(sender As System.Object, e As System.EventArgs) Handles mnuDatabaseNew.Click
    If sfdDatabase.ShowDialog = Windows.Forms.DialogResult.OK Then
        If database.State = ConnectionState.Open Then
            database.Close()
            MsgBox("Closing old DB")
        End If
        If System.IO.File.Exists(sfdDatabase.FileName) Then System.IO.File.Delete(sfdDatabase.FileName)
        catalog.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sfdDatabase.FileName)
        database.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sfdDatabase.FileName
        database.Open()
        catalog.ActiveConnection = database
    End If
End Sub