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

C# 使用openfiledialog获取打开的数据库C的路径#,c#,sql-server,visual-studio-2010,openfiledialog,C#,Sql Server,Visual Studio 2010,Openfiledialog,我正在使用VisualStudioExpess2010。我试图弄清楚如何使用openfiledialog获取数据库的路径 当前,我关闭与数据库的连接,然后尝试在“打开文件”对话框中选择数据库,但Windows告诉我:“此文件正在使用中,请关闭文件…” 如果我已经关闭了数据库连接,我还需要做什么才能完全关闭文件,以便在openfiledialog中选择它?关闭连接不会将创建的流保留到文件中Dispose用于设置连接的对象。它在很大程度上取决于数据库文件的位置,例如,它是否在您的项目中?它是否在sq

我正在使用VisualStudioExpess2010。我试图弄清楚如何使用openfiledialog获取数据库的路径

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


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

关闭连接不会将创建的
流保留到文件中
Dispose
用于设置连接的对象。

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

如果路径位于data文件夹中,请尝试以下sql为您提供路径

select physical_name
from sys.database_files
where type = 0
如果它位于项目的app_数据文件夹中,请尝试一个简单的

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

openFileDialog.ValidateNames = false;

第一:对话框总是检查无效字符,即使ValidateNames为FALSE

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

编辑2:为了准确了解数据库仍在使用的原因-


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

如何关闭连接?SQLcl.cn.Close();DB文件目前在我的项目中。我想特别使用openfiledialog获取路径。我希望最终用户能够轻松地使用openfiledialog。DB文件是一个基于本地C#Service的数据库数据。如果要查看新代码,您可以使用我的第一个建议来指向文件拨号og指向正确的位置,我想。我应该只处理SQLConnection对象吗?我在SQLConnection对象上使用了dispose语句,但什么也没有发生。Windows仍然告诉我我的文件已打开。不,您仍然需要处理所有在中使用SQLserver的对象。因为它们已连接到该对象。