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

时间:2012-03-01 13:56:35

标签: database vb.net

我启动应用程序,选择数据库>新建并保存文件。然后我做了完全相同的事情,保存旧文件,但得到错误:

该进程无法访问文件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

0 个答案:

没有答案