我正在使用C#构建基于winform
的桌面应用程序。我在我的应用程序中使用SQL Server数据库。
应用程序可以选择存档,我基本上将所有配置文件和数据文件(* .mdf)复制到Winzip存档中。
但是,我无法复制数据库文件* .mdf。它引发了一个例外:
"该进程无法访问文件UserData.mdf,因为它正由另一个进程使用"
我相信我正在关闭所有SQL连接,并通过执行手动垃圾收集
GC.Collect()
。
但是,这似乎不起作用。
作为一种解决方法,如果我能够从Taskmanager中删除进程sqlservr.exe,则文件副本可以正常工作。
我想,应该有更好,更优雅的方式。任何想法如何进行?
由于 基兰
答案 0 :(得分:5)
我不完全确定你要用这个做什么,但听起来好像备份脚本会更有益
http://msdn.microsoft.com/en-us/library/ms187510.aspx
BACKUP DATABASE [AdventureWorks2012]
TO DISK = 'd:\AdventureWorks2012.Bak'