10

我创建了一个数据库emailDatabase,它存储在

C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA

在 Visual Studio 中,我使用Server Explorer,单击添加新连接按钮。

出现添加连接对话框。

在服务器名称下,我使用下拉框并选择DEV-5\SQLEXPRESS. 我使用 Windows 身份验证。

Connect to底部的部分中,下拉菜单显示:Master, Model, msdb并且tempdb不显示 my emailDatabase.

所以我选择Attach Database File并单击浏览并关注

local C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA

并选择我的电子邮件数据库。

发生以下错误:

emailDatabase
您无权打开此文件。
联系文件所有者或管理员以获得许可。

我认为我的问题是我错误地保存了我的数据库,我需要进行备份或类似的事情。如果是这种情况,请告诉我如何进行备份等。我真的需要从这个问题中向前迈进。

创建数据库时,我右键单击 SQL Server Management Studio 中的数据库并选择新数据库,然后添加带有查询的列。然后文件全部保存。

如何获得具有在 Visual Studio 中使用它所需的所有权限的数据库文件的副本?

4

6 回答 6

17

当您在服务器上创建数据库时(使用 SQL Server Management Studio),您不必(也不应该!)再摆弄数据库文件 - 让服务器为您处理。

而是:在 Visual Studio 中添加连接,然后在连接对话框中指定服务器实例 ( DEV-5\SQLEXPRESS) 和数据库名称 ( )。emailDatabase

这样,您就可以按照预期的方式连接和使用 SQL Server 数据库 - 在 SQL Server 实例本身上。这比不得不处理“自由浮动”.mdf文件并将它们附加到您的解决方案和类似的东西要容易得多,也少得多麻烦......

在此处输入图像描述

所以在这里 - 填写DEV-5\SQLEXPRESS您的“服务器名称”下拉列表,然后使用“选择或输入数据库名称”选项并输入您的数据库名称(或从下拉列表中选择) - 它应该在那里!

不要使用“附加数据库文件”选项 - 这是自由浮动的.mdf“功能”,它相当笨拙且难以使用且容易出错 - 再次:我建议不要使用它......

于 2012-05-07T13:21:57.330 回答
1

有同样的问题,我意识到问题不在VS2010,而是我的SQLserver。
我的实例名称是OMAFANO,这就是我的 MSSQL 在服务器名称下连接的名称。现在这是关键,单击它并连接到OMAFANO\SQLEXPRESS并在那里创建所有数据库和表,如果您希望它们按照您在上面所说的方式显示在 VS2010 中。所以在VS2010的服务器名称下,如果你想查看你新创建的数据库等,还要写INSTANCENAME\SQLEXPRESS 。看一下图片:
在此处输入图像描述

于 2014-05-17T04:32:58.470 回答
0

我以为我已经弄清楚了,但问题不断出现。所以 ...

忽略这条线以下的所有内容。

经过几个小时的修修补补,我终于弄清楚了如何使用 SSMS 连接到在 VS2010 中创建的 SQLServer 2008 数据库,并且相对简单。但是从各地未得到解答的问题的数量来看,没有很好的记录。这是如何做到的:

  1. 在 VS 中右键单击 SolutionExplorer 中的项目并选择添加新项目,然后选择数据,然后选择 SQLServer 数据库。它会提示您将其保存在 app_data 文件夹中,如果该文件夹不存在,则为您创建该文件夹。

  2. 找到 Ssms.exe 文件(在我的系统上它位于 C:\Program Files\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE

  3. 右键单击 Ssms.exe 并选择以管理员身份运行。

  4. SSMS 打开后,您可以附加项目 MDF。它现在将出现在您的数据库列表中。数据库名称是一个 GUID。

  5. 您甚至可以对数据库运行 aspnet_regsql 以添加成员资格表和存储过程。

重要的!您可以使用 SMSSVS管理此数据库,但不能同时使用两者。如果您使用 ServerExplorer 从 VS 中弄乱数据库,您将中断 SSMS 连接。要解决这个问题,您需要分离并重新附加数据库。

于 2012-12-01T20:18:15.300 回答
0

以管理员身份运行 Visual Studio 转到 Visual Studio 实例,即 C#、C++ 等 右键单击​​ > 以管理员身份运行

那么现在它可能会起作用

于 2015-05-14T11:56:57.377 回答
0

要从 Visual Studio 2013 连接到 ssms2014 数据库,在新的连接向导中,我必须将“数据源”从“ms sql server 数据库文件”更改为“.net framework data provider for sql server..”。然后我可以输入 [计算机名] [用户名] 进行 Windows 身份验证。

于 2015-07-03T21:14:05.603 回答
0

我有同样的问题,你只需输入本地服务器名称“ sara-PC ”而不是“ sara-PC\SQLEXPRESS

现在您可以轻松访问您的数据库,您可以在下拉列表中看到它。并且请不要使用文件访问方法来附加数据库,那不是好方法。您也可以通过使用 server->rightclick->properties->Database settings 设置默认位置,将 ~....\Data 和 ~...\log 文件放在任何你想要的位置。

这绝对可以解决您的问题。

于 2019-10-31T06:19:01.240 回答