1

oledb を使用して mdb ファイルに接続する単一のユーザー プログラムがあります。接続する前に、mdb が存在するかどうかを確認する必要があります。存在する場合は、削除して作成します。存在しない場合は、作成するだけです。しかし、mdbが存在することを確認して削除したい場合、ldbファイルがロックされているため、強制的にldbのロックを解除してmdbファイルを削除することはできますか?

4

1 に答える 1

2

OleDb を使用している場合は、使用されているすべてのオブジェクトを閉じるか破棄する必要があります¹。そうしないと、mdb ファイルはまだ「使用中」であり、削除できません。OleDbConnectionOleDbCommand

これを行う簡単な方法は、そのようなオブジェクトをすべて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 に答える