sql server mdf文件数据库附件

时间:2010-09-07 20:25:57

标签: sql-server visual-studio-2010 mdf

我有一段时间让视觉工作室2010(最终我认为)正确地附加到我的数据库。它从它的原始位置移动到#MYAPP#/#MYAPP#.Web/App_Data/#MDF_FILE#.mdf。我在这台机器上运行了三个SQL Server实例。我试图用我的新mdf文件替换旧的mdf文件,并且无法获得适合它的连接字符串。

我真正想要做的就是打开数据库实例并运行数据库创建脚本。然后我可以在Silverlight业务应用程序(c#)中通过我的edmx(从模型生成数据库)生成一个数据库

现在,当我转到VS中的Server Explorer时,选择添加新连接,选择MS SQL Server数据库文件(SqlClient),选择我的文件位置(app_data目录),使用Windows身份验证,然后点击Test Connection按钮,我收到以下错误:

  

无法打开物理文件“”。操作系统错误5:“5(拒绝访问。)”。尝试连接到自动命名的数据库以查找文件“”失败。存在具有相同名称的数据库,或者无法打开指定的文件,或者它位于UNC共享上。

mdf文件是由

在同一台机器上创建的
  • 在SQL Server管理工作室中连接到(本地)。
  • 获取新查询。
  • 从生成的ddl文件中粘贴SQL。
  • 在粘贴的SQL和
  • 之前添加CREATE DATABASE [NcrCarDatabase]; GO;
  • 执行查询。

然后我

  • 与Management Studio中的数据库断开连接。
  • 封闭式管理工作室
  • 导航到该实例的DATA目录
  • 将mdf和ldf文件复制到应用程序的app_data文件夹中。

我现在正在尝试连接到visual studio中的同一个文件。

我希望这能使我的问题更清晰:)。

连接字符串是:

  

数据   源= \ SQLEXPRESS; AttachDbFilename = C:\源码\ NcrCarDatabase \ NcrCarDatabase.Web \程序App_Data \ NcrCarDatabase.mdf;集成   安全性=真;连接超时= 30;用户   实例=真

5 个答案:

答案 0 :(得分:1)

您提到您的MDF文件已被移动。移动后MDF是否正确连接到SQL Express?请参阅:How to: Attach a Database File to SQL Server Express

答案 1 :(得分:1)

Access denied可能意味着您已经拥有一个在您执行此操作之前已打开文件的活动实例 - 如果您有三个活动实例,则很可能其中一个是罪魁祸首。

您可以尝试使用Management Studio连接到不同的实例,看看是否可以在那里找到基础。如果是,则将其从实例中分离并从Visual Studio重新尝试。或者,如果可能,尝试关闭所有三个实例,然后从Visual Studio重新尝试。如果可行,请逐个重新启动实例,以确定其中哪些实体正在尝试获取文件。

我之前回答了类似的问题help

答案 2 :(得分:1)

您的Sql server服务在给定帐户下运行。您应该通过服务属性确定帐户,然后将db file安全访问权限更改为该帐户的完全访问权限。

答案 3 :(得分:1)

在我以管理员身份运行Visual Studio之前,我得到了“拒绝访问”。然后,我必须先将数据库从MSSMS中分离出来,然后才能进入Visual Studio。

答案 4 :(得分:0)

为您的应用程序文件夹和.mdf.ldf文件提供完全控制的安全性。写一下包含.mdf,.ldf文件

的文件夹
  1. 转到物业
  2. 点击
  3. 中的安全性
  4. 单击“允许”中的“完全控制”。
  5. 他们继续你的过程。