【问题标题】:Cannot connect to .mdf database无法连接到 .mdf 数据库
【发布时间】:2012-02-02 16:04:40
【问题描述】:

我已经尝试了所有方法,但无法访问/更改/修改我的数据库。我在 Visual Studio 中使用 .mdf 创建了它。我是使用 SQL 数据库的新手,所以如果你能帮助我,我会很高兴。正如我所说,我在 Visual Studio 中创建了该数据库,但无法创建与该数据库的连接。

在网络配置中:

<connectionStrings>
   <add name="ConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|Database.mdf;Integrated Security=True;"
      providerName="System.Data.SqlClient" />
  </connectionStrings>

在cs中我使用了那个sql连接字符串:

SqlConnection conn = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDBFilename=|DataDirectory|Database.mdf;Integrated Security=True;");

我有这个错误:

尝试为文件 C:\Users\mcan\Documents\Visual Studio 2010\WebSites\WebSite1\App_Data\Database.mdf 附加自动命名数据库失败。存在同名数据库,或指定文件无法打开,或位于 UNC 共享上。


我做了一些改变:

在网络配置中:

<connectionStrings>
 <add name="ConnectionString" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=|DataDirectory|Database.mdf;Integrated Security=True;"
  providerName="System.Data.SqlClient" />

在cs中:

 SqlConnection conn = new SqlConnection("Data Source=.\\SQLEXPRESS;Initial Catalog=|DataDirectory|Database.mdf;Integrated Security=True;");

现在它给出了那个错误:

*Server Error in '/WebSite1' Application. Cannot open database |DataDirectory|Database.mdf" requested by the login. The login failed. Login failed for user 'mcan-PC\mcan'. *

【问题讨论】:

  • @SLaks - 你呢?消息中提到了 3 种可能性。你的答案假设是一个。
  • @MartinSmith:那不是 UNC 共享,他说他已经创建了文件。
  • @SLaks - 但仍然可能是权限问题。没有?
  • 我认为错误信息是干净的。
  • 那个用户有权限。如果您了解问题并能够提供帮助,那么我等待您的 cmets

标签: c# asp.net sql


【解决方案1】:

正如错误明确指出的那样,该数据库已连接到 SQL Server。
同一台服务器上不能有两个同名的数据库。

【讨论】:

  • 我只是尝试从一个地方访问该数据库,为什么还有另一个连接?我无法访问和修改它,我该怎么办?
  • 数据库已经在 SQL Server 中。您应该将其从 SQL Server 中删除或通过名称连接到它,而不是尝试重新附加它。
  • 您能解释一下按名称连接到它的方法吗?
  • 使用Initial Catalog 而不是AttachDBFilename
  • 出现另一个问题:无法打开登录请求的数据库“|DataDirectory|Database.mdf”。登录失败。用户“mcan-PC\mcan”登录失败。
【解决方案2】:

问题可能是您的 mdf 文件没有为经过身份验证的用户设置权限。导航到您的 .mdf 文件,右键单击并转到属性,然后转到安全选项卡。检查 Authenticated Users 是否出现在“组或用户名”中。如果没有,那么您必须单击编辑,然后单击添加并输入经过身份验证的用户。然后你会点击检查名称并确定。之后启用对经过身份验证的用户的完全控制。您也必须对 .ldf 文件重复此操作。

【讨论】:

  • 我已经检查过,经过身份验证的用户出现在“组或用户名”中。
  • 当您选择 Authenticated Users 并在 Permissions 列表下查看时,Allow 列下是否选中了 Full control?
  • 是的,有 System、mcan-PC\mcan 和 mcan-PC\Administrators,所有者是 mcan-PC\mcan,并且在 Allow 列下都勾选了 Full control
猜你喜欢
  • 2018-02-09
  • 2011-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-14
  • 1970-01-01
相关资源
最近更新 更多