繁体   English   中英

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

[英]How to add SQL Server database file (.mdf) in Visual Studio without installing SQL Server Express Edition?

我在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 Enterprise Edition

我正在使用Visual Studio 2010 Ultimate

这真是令人讨厌的一个。 基本上,在您正在开发的框架版本的Machine.config中,有一个LocalSqlServer条目。

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

C:\\ WINDOWS \\ Microsoft.NET \\框架\\ 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完整服务器实例,那么您提到的错误就会消失。

(类似于框架的其他版本,我也改变了)

在看到更改工作之前,我不记得是否需要重新启动visual studio或整个机器。

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

话虽如此,也没有理由不能将数据库添加到Sql Server本身(如果你有mdf),然后通过View - > Server Explorer - > Data Connections(右键单击 - 从Visual Studio连接到它)。 >添加连接) - 你试过吗?

我知道这篇文章有点老但我遇到了同样的问题,我实际上找到了解决方案,所以我想分享它。

  1. 安装sql express 2008 r2
  2. 在visual studio 2010中,转到Tools -> Options
  3. 选择Database Tools -> Data Connections并使用Database Tools -> Data Connections Sql Server Instance Name (blank for default)更新Sql Server Instance Name (blank for default)
  4. 然后按⊞Win + Rservices.msc 进入 services.msc
  5. 选择SQL Server (<instance name of express edition>) ,右键单击并选择“ Properties
  6. 然后在服务的属性窗口中,转到“ Log On选项卡,然后选择“ Local System account

完成这些步骤后,我可以将.mdf文件添加到visual studio 2010中。

也许可以在不安装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();
            } 
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM