我已经开发了C#WPF应用程序,我使用的数据库的MDF文件, 我的连接字符串的样子:无法打开DATABSE的登录请求,登录失败,用户登录失败
Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\appDataBase.mdf;Integrated Security=True;Connect Timeout=30
这里我我正在更换| DataDirectory |与用户的应用程序数据文件夹。
数据库文件是在用户的AppData文件夹,我创建 副本.mdf
文件_users当我安装它 客户端的计算机应用程序数据文件夹,它的工作原理,其完美
的设置,但是当我卸载和 重新安装,我无法连接该文件,得到错误:
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后,我改变我的代码关闭数据库连接主窗口关闭事件。
所以,当应用程序启动时,我必须检查所有打开的连接到MDF文件?并断开它是否从上次执行打开? –
不,只是把你的代码放在try catch中,在try和catch中处理和关闭所有的对象,所以它永远不会产生同样的问题。寻找一个实例并关闭它并不是一个好习惯。可能你已经打开了数据库的连接,并忘记使其关闭寻找。 –
我研究,我发现我不应该使用(的LocalDB)\ V11.0,相反,它应该是.SQLEXPRESS,我对我的应用程序的先决条件指定安装在客户计算机的SQL Express,它是工作第一时间( LocalDB)\ v11.0, –