1

我有一个使用 oledb 连接 mdb 文件的单个用户程序,在它连接之前,我需要检查 mdb 是否存在。如果存在,删除并创建。如果不存在,只需创建。但是当我检查mdb存在并想删除时,ldb文件被锁定,我想问我可以强制解锁ldb并删除mdb文件吗??

4

1 回答 1

2

如果您使用的是 OleDb,则必须关闭或处置所有使用过OleDbConnectionOleDbCommand对象。¹否则,mdb 文件仍处于“使用中”且无法删除。

一种简单的方法是将所有此类对象包装在Using块中。

例如,而不是

Dim cn As New OleDbConnection(...)
Dim cmd As New OleDbCommand(...)
cmd.ExecuteNonQuery()
cn.Close()

你会写:

Using cn As New OleDbConnection(...)
    Using cmd As New OleDbCommand(...)
        cmd.ExecuteNonQuery()
    End Using
End Using

(请注意,您不再需要显式Close连接,这是在块的末尾自动完成的Using。)


¹这与例如SqlCommands 不同,后者对不被处置的反应更优雅。但是,作为一般规则:如果它实现了IDisposable,则将其丢弃。

于 2013-01-18T06:51:37.550 回答