我有一个使用 oledb 连接 mdb 文件的单个用户程序,在它连接之前,我需要检查 mdb 是否存在。如果存在,删除并创建。如果不存在,只需创建。但是当我检查mdb存在并想删除时,ldb文件被锁定,我想问我可以强制解锁ldb并删除mdb文件吗??
问问题
891 次
1 回答
2
如果您使用的是 OleDb,则必须关闭或处置所有使用过OleDbConnection
的OleDbCommand
对象。¹否则,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
。)
¹这与例如SqlCommand
s 不同,后者对不被处置的反应更优雅。但是,作为一般规则:如果它实现了IDisposable
,则将其丢弃。
于 2013-01-18T06:51:37.550 回答