我有一个用户程序使用oledb连接mdb文件,在连接之前,我需要检查mdb是否存在。如果存在,则删除并创建。如果不存在,只需创建。但是当我检查mdb存在并想要删除时,ldb文件锁定,我想问一下我可以强制解锁ldb并删除mdb文件吗?
答案 0 :(得分: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
s更优雅地反应而不被处置。但是,作为一般规则:如果它实现{{1}},则将其丢弃。