0

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

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

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

4

2 回答 2

1

关闭连接不会将Stream创建的文件留给文件。Dispose您用来建立连接的对象。

于 2013-09-28T07:35:11.467 回答
0

它很大程度上取决于 db 文件的位置,例如它在您的项目中吗?它在您的 sql server 数据文件夹中吗?

如果它在数据文件夹中,请尝试以下 sql 为您提供路径...

select physical_name
from sys.database_files
where type = 0

如果它在您项目的 app_data 文件夹中,请尝试一个简单的

Server.mappath

编辑:如果您坚持使用对话,请尝试以下操作:

openFileDialog.ValidateNames = false;

请参阅此 MS 错误报告

“首先:对话框总是检查无效字符,即使 ValidateNames 为 FALSE。

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

编辑 2:要准确了解数据库仍在使用的原因 -取自此处

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

于 2013-09-28T07:46:46.093 回答