Directory.Copy失败,因为* .mdf正被C#中的另一个进程访问

时间:2013-01-11 13:03:32

标签: c# sql-server

我正在使用C#构建基于winform的桌面应用程序。我在我的应用程序中使用SQL Server数据库。

应用程序可以选择存档,我基本上将所有配置文件和数据文件(* .mdf)复制到Winzip存档中。

但是,我无法复制数据库文件* .mdf。它引发了一个例外:

"该进程无法访问文件UserData.mdf,因为它正由另一个进程使用"

我相信我正在关闭所有SQL连接,并通过执行手动垃圾收集 GC.Collect()

但是,这似乎不起作用。

作为一种解决方法,如果我能够从Taskmanager中删除进程sqlservr.exe,则文件副本可以正常工作。

我想,应该有更好,更优雅的方式。任何想法如何进行?

由于 基兰

1 个答案:

答案 0 :(得分:5)

我不完全确定你要用这个做什么,但听起来好像备份脚本会更有益

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

BACKUP DATABASE [AdventureWorks2012]
TO DISK = 'd:\AdventureWorks2012.Bak'