我正在使用Visual Studio Expess 2010.我正在尝试弄清楚如何使用openfiledialog来获取数据库的路径。
目前我关闭了与数据库的连接,然后尝试在打开的文件对话框中选择数据库,但Windows告诉我:“此文件正在使用中,关闭文件......”
如果我关闭了我的数据库连接,我还需要做些什么来完全关闭文件,以便我可以在openfiledialog中选择它?
答案 0 :(得分:1)
关闭连接不会将Stream
创建到文件中。 Dispose
用于设置连接的对象。
答案 1 :(得分:0)
它可能在很大程度上取决于db文件的位置,例如它在你的项目中吗?它在你的sql server数据文件夹中吗?
尝试以下sql为您提供路径,如果它在数据文件夹中...
select physical_name
from sys.database_files
where type = 0
如果它位于项目的app_data文件夹中,请尝试简单的
Server.mappath
编辑:如果您坚持使用对话,请尝试以下操作:
openFileDialog.ValidateNames = false;
“First:对话框始终检查无效字符,即使ValidateNames为FALSE。
第二:如果为TRUE,对话框会尝试打开文件并在锁定时发出警告“
编辑2:要确切了解数据库仍在使用的原因 - taken from here
“在关闭实例的最后一次连接后,启动的sqlservr.exe进程会保持运行一段时间。因此,如果打开另一个连接,则不需要重新启动它。它保留的时间长度around由sp_configure选项“user instance timeout”设置。默认情况下,这设置为60分钟,但您可以使用sp_configure命令更改此设置。“