C# 如何在Visual Studio中添加SQL Server数据库文件(.mdf),而不安装SQL Server Express Edition?

C# 如何在Visual Studio中添加SQL Server数据库文件(.mdf),而不安装SQL Server Express Edition?,c#,asp.net,.net,sql-server,visual-studio-2010,C#,Asp.net,.net,Sql Server,Visual Studio 2010,下面我在Visual Studio 2010项目中添加.mdf文件(SQL Server数据库)时出错 连接到SQL Server数据库文件(.mdf)需要SQL Server 要在上安装并运行的2005 Express或SQL Server 2008 Express 本地计算机 我不想安装SQL Server Express(2005/2008),因为我已经安装了 SQL Server 2005企业版 我使用的是Visual Studio 2010 Ultimate这是一个非常烦人的问题。基本

下面我在Visual Studio 2010项目中添加
.mdf
文件(SQL Server数据库)时出错

连接到SQL Server数据库文件(.mdf)需要SQL Server 要在上安装并运行的2005 Express或SQL Server 2008 Express 本地计算机

我不想安装SQL Server Express(2005/2008),因为我已经安装了 SQL Server 2005企业版


我使用的是Visual Studio 2010 Ultimate

这是一个非常烦人的问题。基本上,在针对其开发的框架版本的Machine.config中,有一个LocalSqlServer条目

在我的机器上,对于版本4:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\Machine.Config

<add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" />

我发现,如果我将连接字符串的数据源部分更改为指向我的Sql 2005 full server实例,那么您提到的错误就消失了

(与框架的其他版本类似,我也对其进行了更改)

我记不起在看到更改生效之前是否需要重新启动visual studio或整个机器

请记住在编辑machine.config文件之前备份它们


话虽如此,您也没有理由不能将数据库添加到Sql Server本身(如果您有mdf),然后通过查看->服务器资源管理器->数据连接(右键单击->添加连接)从Visual Studio连接到它-你试过了吗?

我知道这篇文章有点旧,但我遇到了同样的问题,我实际上找到了一个解决方案,所以我想与大家分享

  • 安装sql express 2008 r2
  • 在visual studio 2010中,转到
    Tools->Options
  • 选择
    databasetools->dataconnections
    并用数据库的实例名更新
    sqlserver实例名(默认为空)
  • 然后按转到服务⊞Win+R和
    services.msc
  • 选择
    SQL Server()
    ,右键单击并选择
    Properties
  • 然后在服务的属性窗口中,转到
    登录
    选项卡并选择
    本地系统帐户
  • 在这些步骤之后,我能够将
    .mdf
    文件添加到VisualStudio2010中


    也可能不安装Sql server express就可以做到这一点,这只是从第二步开始,但我没有尝试过。如果不存在,可以使用代码添加它

    string curFile = @"C:\Dev\Test_data.mdf";
            if (!File.Exists(curFile))
            {
                SqlConnection connection = new SqlConnection(@"server=(localdb)\v11.0");
                using (connection)
                {
                    connection.Open();
    
                    string sql = string.Format(@"
                                        CREATE DATABASE
                                            [Test]
                                        ON PRIMARY (
                                           NAME=Test_data,
                                           FILENAME = '{0}\Test_data.mdf'
                                        )
                                        LOG ON (
                                            NAME=Test_log,
                                            FILENAME = '{0}\Test_log.ldf'
                                        )",
                        @"C:\Dev"
                    );
    
                    SqlCommand command = new SqlCommand(sql, connection);
                    command.ExecuteNonQuery();
                } 
            }
    

    以前有人问过这个问题,请参阅附加一个
    .mdf
    文件选项,该选项仅在SQL Server的快速版中可用-所有其他(web、标准、企业版)都不支持此选项。如果您有完整版本的SQL Server,则需要在服务器上创建数据库,然后使用服务器连接连接到该数据库string@marc_s这就是答案!!!我一直在试图了解为什么我的SQL Server许可证verson会被Visual Studio和对SQL Express的需求所超越。。。所以对我来说,解决方案是通过
    conn String
    连接。。。感谢专业人士。首先感谢您的回复。如果我在我的电脑上开发的其他电脑上运行我开发的应用程序,我不想进行还原或附加mdf文件。如果您从网站下载示例代码,那么对某些人来说,配置应用程序很烦人(意味着还原数据库或附加mdf文件和配置连接字符串等)这一切都要看情况而定——您可能会争辩说,这些MDF文件是您项目的一个依赖项,并且,与任何依赖项一样,您必须以某种方式包含它们。祝你好运