Как добавить файл базы данных SQL Server (.mdf) в Visual Studio без установки SQL Server Express Edition?

У меня ошибка при добавлении файла .mdf (база данных SQL Server) в проект Visual Studio 2010

Подключения к файлам базы данных 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

Ответ 1

Это действительно раздражает. В основном, в 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, то указанная вами ошибка исчезла.

(Аналогично для других версий фреймворка, которые я также изменил)

Я не могу вспомнить, нужно ли мне перезапускать только визуальную студию или всю машину, прежде чем я увижу, что изменения работают.

Не забудьте выполнить резервное копирование файлов machine.config перед их редактированием!

С учетом сказанного также нет причин, по которым вы не можете добавить базу данных в сам сервер Sql (если у вас есть mdf), затем подключитесь к нему из Visual Studio через View → Server Explorer → Data Connections ( Щелкните правой кнопкой мыши → Добавить соединение) - вы пробовали это?

Ответ 2

Я знаю, что этот пост немного стар, но я столкнулся с той же проблемой, и я действительно нашел решение, поэтому хотел бы поделиться им.

  • Установить sql express 2008 r2
  • В visual studio 2010 перейдите к Tools -> Options
  • Выберите Database Tools -> Data Connections и обновите Sql Server Instance Name (blank for default) с именем экземпляра вашей базы данных.
  • Затем перейдите к услугам, нажав ⊞Win + R и services.msc
  • Выберите SQL Server (<instance name of express edition>), щелкните правой кнопкой мыши и выберите Properties
  • Затем в окне свойств службы перейдите на вкладку Log On и выберите Local System account

После этих шагов я смог добавить файл .mdf в visual studio 2010.

Возможно, возможно это сделать, не устанавливая Sql server express, только начиная со второго шага, но я не пробовал.

Ответ 3

вы можете использовать код для добавления, если не существует

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();
            } 
        }