22

我正在尝试在 VS 2012 中构建到 2008 SQL Express 数据库文件的连接字符串。我收到一个错误对话框:

此数据库文件与 SQL Server 的当前实例不兼容。要解决此问题,您必须通过创建新的数据连接来升级数据库文件,或者您必须修改与此数据库文件的现有连接。有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=235986

我点击了指向 Microsoft 总是非常有用的文档的链接(咳咳……)。当我通过升级数据库功能时,没有提示我升级文件。我真的希望使用 LocalDb 而不必安装 SQL Express 2008。有什么想法吗?

其他:为什么这么多年来 Visual Studio 还没有实现单击错误对话框中的链接?真的很难实施吗?

4

5 回答 5

51

我的简单方法:

  1. 前往VisualStdio 2012
  2. 服务器资源管理器窗口中
  3. 打开数据连接
  4. 右键单击ASPNETDB.MDF
  5. 点击修改连接...
  6. 为您打开一个新窗口...您只需单击确定
  7. 如果为您打开其他窗口,请单击
  8. 完成(快乐):D
于 2014-06-27T10:10:16.720 回答
23

根据我之前的经验:

  1. 忘记尝试SQL Server Express .mdf在 Visual Studio 2012 中打开旧文件。在旧 VS 2010 解决方案到 VS 2012 的转换过程中,它告诉您只需双击数据库文件并将其升级为使用 LocalDb 即可。这完全是谎言!:D

  2. 打开SQL Server Management Studio,选择Databases节点,右键单击它并选择Attach....

  3. 提供.mdf文件的路径,单击“确定”,然后您就可以开始了。

  4. 现在在里面Visual Studio 2012,打开Server Explorer(菜单View -> Server Explorer),右键单击Data Connections然后选择Add Connection...。输入Server name:并选择您之前附加的数据库(localdb)\v11.0Connect to a database:

  5. 右键单击Data Connection刚刚添加的Solution Explorer并选择Properties. 复制该Connection String属性并将Web.Configor替换App.Config为此值。

注意:SQL Server Management Studio尝试附加.mdf从 DayPilot 的示例项目中获得的旧文件时出现错误:Scheduler for ASP.NET MVC 4 Razor (C#, VB.NET, SQL Server)。这与数据库文件.log附带的文件的路径问题有关。.mdf我刚刚.log在对话框窗口中选择了文件条目Attach...并将其删除。然后尝试再次附加数据库并且它工作。

于 2013-05-08T02:27:24.813 回答
1

你可以这样做:

USE [master]
GO
CREATE DATABASE [database_name] ON 
    ( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\<database name>.mdf' ),
    ( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\<database name>.ldf' )
FOR ATTACH ;
GO

如此处所述:http ://technet.microsoft.com/en-us/library/ms165673%28v=sql.105%29.aspx

于 2013-11-20T13:00:45.507 回答
0

打开 sql server management studio 连接 localDB 删除同名 mdf 文件,然后附加您的 mdf 文件

转到服务器资源管理器中的Visual Studio->数据连接右键单击您的数据库->修改连接->文本连接->单击确定

于 2017-11-15T14:16:40.017 回答
0

转到 VisualStadio 2012 在服务器资源管理器窗口中打开数据连接右键单击 ASPNETDB.MDF 单击修改连接...为您打开一个新窗口...如果为您打开其他窗口,您只需单击确定单击是

于 2017-01-23T11:03:52.440 回答