SqlExpress LocalDb无法打开文件

时间:2012-07-31 17:23:41

标签: c# ado.net sql-server-express localdb

我在AppData / Local路径下的目录中有两个MDF文件。如果我尝试使用LocalDb打开它们。

我的连接字符串格式为:

  

数据   源=(的LocalDB)\ V11.0; AttachDbFilename =“C:\用户\安娜\应用程序数据\本地\ CaseTrakker   SOFTWARE \ CTDynamoDisconnected \ CTDynamoDisconnected_Data.mdf“;综合   安全性=真;连接超时= 10

我有一个示例桌面应用程序试图连接到此MDF,我得到了这个例外:

  

System.Data.SqlClient.SqlException(0x80131904):无法打开数据库   “C:\用户\ ANNA \ APPDATA \ LOCAL \ CASETRAKKER   软件\ CTDYNAMODISCONNECTED \ CTDYNAMODISCONNECTED_DATA.MDF“已请求   通过登录。登录失败。用户'IMA \ Anna'登录失败。

如果我将此文件移动到任何其他位置,或重命名它(甚至更长的名称),我可以连接到它。

这个地方似乎有一些奇特的东西。

另一件奇怪的事情:它上周有效。据我所知,我的机器或域安全性没有任何改变。

我完全不知道还有什么可以尝试的。想法?

3 个答案:

答案 0 :(得分:2)

您可以检查LocalDB实例日志文件中是否有任何有趣的内容吗?它默认位于%localappdata%\Microsoft\Microsoft SQL Server Local DB\Instances\v11.0文件夹中。

答案 1 :(得分:1)

此问题的一个原因是您进入C:\Users\[username]文件夹并删除MDF和LDF文件。如果你这样做,那就类似于对完整的SQL Server做同样的事情。服务器实例仍然认为它有数据库,但它们显然不起作用。

解决问题的方法是更改​​连接字符串中的数据库名称,它应该可以正常工作。

要实际解决问题,请打开SQL Management Studio,连接到服务器(LocalDb)\v11.0(可能使用Windows身份验证),然后您可以通过这种方式分离这些数据库。

答案 2 :(得分:0)

在我的情况下,我有一段时间的数据库并错误地删除了它的MDF和LDF文件。

要解决此问题,我打开 SQL Management Studio 并使用(localdb)\MSSQLLocalDB连接到Windows Authentication,然后手动创建一个新的空数据库,其名称与web.config连接中的名称相同字符串

<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=myDb;Integrated Security=True;" providerName="System.Data.SqlClient" />