无法打开登录请求的数据库,登录失败,用户登录失败

时间:2016-10-27 05:39:13

标签: c# wpf sql-server-2012 mdf

我开发了c#WPF应用程序,我使用MDF文件作为数据库,    我的连接字符串如下:

  

数据      源=(的LocalDB)\ V11.0; AttachDbFilename = | DataDirectory目录| \ appDataBase.mdf;集成      安全性=真;连接超时= 30

此处我正在用用户的appdata文件夹替换 | DataDirectory |

数据库文件位于用户的appdata文件夹中,我创建了一个设置    我安装它时将.mdf文件复制到_users appdata文件夹    客户的电脑,它完美地工作 但当我卸载和    重新安装它,我无法连接该文件,收到错误:

  

无法打开数据库      " C:/users/myusername/appdata/roaming/myapplication/database/appDataBase.mdf"      登录请求,登录失败,用户登录失败..

文件在那里,但不知何故它被SQL服务器使用并且不能    打开它。同时在我每次创建时启动应用程序    备份该文件,该文件也失败并显示错误

  

System.IO.IOException:进程无法访问该文件      ' C:\ Users \用户名为myUsername \应用程序数据\漫游\ MyApplication的\数据库\ appDataBase.mdf'      因为它正被另一个进程使用。

任何人都可以给我一个确切的解决方案,因为我必须只在我的客户端计算机上使用localdb,我不希望他们让我做任何额外的配置来安装我的应用程序,i.am仍然面对iasue后我在主窗口关闭事件中更改了我的代码以关闭数据库连接。

1 个答案:

答案 0 :(得分:1)

发生这种情况是因为您使用该数据库的某个对象仍在后台运行,因此请处置所有与数据库相关的实例,并在catch()中配置并关闭所有与数据库相关的对象。

尝试catch将帮助您检测出错误的确切行号,并显示由于您遇到错误的对象。

如果你想检查为什么会发生这种情况,那么打开任务管理器并在那里寻找服务,你肯定会找到为数据库保留对象的服务。