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

Can't open databse requested by login, login failed, login failed for user

我开发了 C# WPF 应用程序,我正在使用 MDF 文件作为数据库, 我的连接字符串看起来像:

Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\appDataBase.mdf;Integrated Security=True;Connect Timeout=30

这里我将 |DataDirectory| 替换为 用户的 appdata 文件夹

数据库文件在用户的 appdata 文件夹,我创建了一个设置 将 .mdf 文件安装到 _users appdata 文件夹中 客户的电脑,完美运行
但是当我卸载和 重新安装它,我无法连接该文件,出现错误:

Can't open database "C:/users/myusername/appdata/roaming/myapplication/database/appDataBase.mdf" requested by login, login failed, login failed for user..

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

而失败

System.IO.IOException: The process cannot access the file 'C:\Users\myusername\AppData\Roaming\myapplication\Database\appDataBase.mdf' because it is being used by another process.

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

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

Try catch 将帮助您检测出错的确切行号,并显示由于哪个对象出错。

如果您想检查发生这种情况的原因,请打开任务管理器并在那里查找服务,您肯定会找到保存数据库对象的服务。