1

winformC#でベースのデスクトップアプリケーションを構築しています。アプリケーションでSQLServerデータベースを使用しています。

アプリケーションにはアーカイブを取得するオプションがあり、基本的にすべての構成ファイルとデータファイル(* .mdf)をWinzipアーカイブにコピーします。

ただし、データベースファイル*.mdfをコピーできません。例外をスローします:

「別のプロセスによって使用されているため、プロセスはファイルUserData.mdfにアクセスできません。」

すべてのSQL接続を閉じて、を介して手動でガベージコレクションを実行していると思います GC.Collect()

しかし、これはうまくいかないようです。

回避策として、タスクマネージャーからプロセスsqlservr.exeを強制終了できれば、ファイルコピーは正常に機能します。

私は、それを行うためのより良い、よりエレガントな方法があるはずだと思います。どのように進めるかについてのアイデアはありますか?

ありがとうキラン

4

1 に答える 1

5

これで何をしようとしているのか完全にはわかりませんが、バックアップスクリプトの方がはるかに有益であるように思われます

http://msdn.microsoft.com/en-us/library/ms187510.aspx

BACKUP DATABASE [AdventureWorks2012]
TO DISK = 'd:\AdventureWorks2012.Bak'
于 2013-01-11T13:08:29.647 に答える