我正在使用 Visual Studio Expess 2010。我试图弄清楚如何使用 openfiledialog 来获取我的数据库的路径。
目前我关闭了与我的数据库的连接,然后尝试在打开文件对话框中选择数据库,但 Windows 告诉我:“此文件正在使用中,请关闭文件...”
如果我关闭了我的数据库连接,我还需要做什么才能完全关闭文件,以便我可以在 openfiledialog 中选择它?
我正在使用 Visual Studio Expess 2010。我试图弄清楚如何使用 openfiledialog 来获取我的数据库的路径。
目前我关闭了与我的数据库的连接,然后尝试在打开文件对话框中选择数据库,但 Windows 告诉我:“此文件正在使用中,请关闭文件...”
如果我关闭了我的数据库连接,我还需要做什么才能完全关闭文件,以便我可以在 openfiledialog 中选择它?
关闭连接不会将Stream
创建的文件留给文件。Dispose
您用来建立连接的对象。
它很大程度上取决于 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 命令更改此设置。