使用openfiledialog获取开放数据库C#的路径

时间:2013-09-28 07:32:52

标签: c# sql-server visual-studio-2010 openfiledialog

我正在使用Visual Studio Expess 2010.我正在尝试弄清楚如何使用openfiledialog来获取数据库的路径。

目前我关闭了与数据库的连接,然后尝试在打开的文件对话框中选择数据库,但Windows告诉我:“此文件正在使用中,关闭文件......”

如果我关闭了我的数据库连接,我还需要做些什么来完全关闭文件,以便我可以在openfiledialog中选择它?

2 个答案:

答案 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;

请参阅this MS bug report

“First:对话框始终检查无效字符,即使ValidateNames为FALSE。

第二:如果为TRUE,对话框会尝试打开文件并在锁定时发出警告“

编辑2:要确切了解数据库仍在使用的原因 - taken from here

“在关闭实例的最后一次连接后,启动的sqlservr.exe进程会保持运行一段时间。因此,如果打开另一个连接,则不需要重新启动它。它保留的时间长度around由sp_configure选项“user instance timeout”设置。默认情况下,这设置为60分钟,但您可以使用sp_configure命令更改此设置。“