我启动应用程序,选择数据库>新建并保存文件。然后我做了完全相同的事情,保存旧文件,但得到错误:
该进程无法访问文件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