62
задан 22 February 2013 в 23:13

8 ответов

Это - довольно старый поток, но так как я переустанавливал свое Сообщество Visual Studio 2015 года сегодня, я думал, что мог бы включить некоторую информацию, что использовать на VS2015, или что могло бы работать в целом.

Для наблюдения, какие экземпляры были установлены по умолчанию, тип sqllocaldb info в командной строке. На моей машине я получаю два экземпляра, первый, названный MSSQLLocalDB .

C:\>sqllocaldb info
MSSQLLocalDB
ProjectsV13

можно также создать новый экземпляр, при необходимости с помощью sqllocaldb create "some_instance_name", но значение по умолчанию каждый будет работать просто великолепно:

// if not using a verbatim string literal, don't forget to escape backslashes
@"Server=(localdb)\MSSQLLocalDB;Integrated Security=true;"
15
ответ дан 31 October 2019 в 13:36

У меня была та же проблема некоторое время. Я заметил, что имел:

Data Source= (localdb)\v11.0"

Просто путем добавления одной обратной косой черты это решило проблему для меня:

Data Source= (localdb)\\v11.0"
9
ответ дан 31 October 2019 в 13:36

В файлах базы данных Sql Server 2008 R2 можно соединиться с

Server=np:\\.\pipe\YourInstance\tsql\query;InitialCatalog=yourDataBase;Trusted_Connection=True;

только, но в SQL-сервере 2012 можно использовать это:

Сервер = (localdb) \v11.0; Интегрированный Security=true; Database=DB1;

и это зависело от Вашего .mdf .ldf версия.

для нахождения programmicaly я использую этот Метод, который объяснил в этом сообщение

3
ответ дан 31 October 2019 в 13:36

1) Требует платформы.NET 4 обновленных по крайней мере к 4.0.2. , Если Вы имеете 4.0.2, затем Вы должны иметь

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.0.2

при установке последнего VS, 2 012 возможностей состоят в том, что Вы уже имеете 4.0.2. Просто проверьте сначала.

2) Затем у Вас должен быть экземпляр LocalDb. По умолчанию у Вас есть экземпляр, имя которого является синглом v символ, сопровождаемый номером релизной версии LocalDB в формате xx.x. Например, v11.0 представляет SQL Server 2012. Автоматические экземпляры общедоступны по умолчанию. У Вас могут также быть именованные экземпляры, которые являются частные . Именованные экземпляры обеспечивают изоляцию от других экземпляров и могут улучшить производительность путем сокращения конкуренции ресурса с другими пользователями базы данных. можно проверить состояние экземпляров с помощью SqlLocalDb.exe утилита (выполните его из командной строки).

3) Затем Ваша строка подключения должна быть похожей:

"Server=(localdb)\\v11.0;Integrated Security=true;"

или

"Data Source=(localdb)\\test;Integrated Security=true;"

из Вашего кода . они оба - то же. Уведомление два \\ потребовало потому что \v и \t специальные символы средств. Также обратите внимание, что то, что появляется после (localdb)\\, является названием Вашего экземпляра LocalDb. v11.0 общедоступный экземпляр по умолчанию, test что-то, что я создал вручную, который является частным.

  1. , Если у Вас уже есть база данных (.mdf файл):

    "Server=(localdb)\\Test;Integrated Security=true;AttachDbFileName= myDbFile;"
    
  2. , Если у Вас нет базы данных Sql Server:

    "Server=(localdb)\\v11.0;Integrated Security=true;"
    

И можно создать собственную базу данных программно:

a) для сохранения его в месте по умолчанию с настройкой по умолчанию:

var query = "CREATE DATABASE myDbName;";

b) Для сохранения его в определенном месте с собственными настройками:

// your db name
string dbName = "myDbName";

// path to your db files:
// ensure that the directory exists and you have read write permission.
string[] files = { Path.Combine(Application.StartupPath, dbName + ".mdf"), 
                   Path.Combine(Application.StartupPath, dbName + ".ldf") };

// db creation query:
// note that the data file and log file have different logical names
var query = "CREATE DATABASE " + dbName +
    " ON PRIMARY" +
    " (NAME = " + dbName + "_data," +
    " FILENAME = '" + files[0] + "'," +
    " SIZE = 3MB," +
    " MAXSIZE = 10MB," +
    " FILEGROWTH = 10%)" +

    " LOG ON" +
    " (NAME = " + dbName + "_log," +
    " FILENAME = '" + files[1] + "'," +
    " SIZE = 1MB," +
    " MAXSIZE = 5MB," +
    " FILEGROWTH = 10%)" +
    ";";

И выполняются!

демонстрационная таблица А может быть загружена в базу данных с чем-то как:

 @"CREATE TABLE supportContacts 
    (
        id int identity primary key, 
        type varchar(20), 
        details varchar(30)
    );
   INSERT INTO supportContacts
   (type, details)
   VALUES
   ('Email', 'admin@sqlfiddle.com'),
   ('Twitter', '@sqlfiddle');";

для Примечания, что SqlLocalDb.exe утилита не предоставляет Вам доступ к базам данных, Вы отдельно, нужно sqlcmd утилита, которая печальна..

РЕДАКТИРОВАНИЕ: перемещенное положение точки с запятой иначе ошибка произошла бы, если бы код был, копируют/вставляют

96
ответ дан 31 October 2019 в 13:36

Я имею строку подключения Server=(localdb)\v11.0;Integrated Security=true;Database=DB1;

и даже .NET 3.5 подключения программы и выполняю SQL успешно.

, Но многие люди говорят, что.NET 4.0.2 или 4.5 требуется.

0
ответ дан 31 October 2019 в 13:36

Я установил упомянутое обновление.Net 4.0.2, но я получил то же высказывание сообщения об ошибке:

А связанная с сетью или определенная для экземпляра ошибка произошла при установлении соединения с SQL Server

, я проверил SqlLocalDb через консоль следующим образом:

C:\>sqllocaldb create "Test"
LocalDB instance "Test" created with version 11.0.

C:\>sqllocaldb start "Test"
LocalDB instance "Test" started.

C:\>sqllocaldb info "Test"
Name:               Test
Version:            11.0.2100.60
Shared name:
Owner:              PC\TESTUSER
Auto-create:        No
State:              Running
Last start time:    05.09.2012 21:14:14
Instance pipe name: np:\\.\pipe\LOCALDB#B8A5271F\tsql\query

Это означает, что SqlLocalDb установлен и работающий правильно. Таким образом, что было причиной, что я не мог соединиться с SqlLocalDB с помощью кода .NET с этим connectionstring: Server=(LocalDB)\v11.0;Integrated Security=true; ?

Затем я понял, что мое приложение было скомпилировано для платформы DotNet 3.5, но SqlLocalDb только работает на DotNet 4.0.

После исправления этого, проблема была решена.

17
ответ дан 31 October 2019 в 13:36

Необходимо установить Точечные Сетевые 4.0.2 или выше, как упомянуто здесь .
4,0 бита не понимают, что синтаксис, требуемый LocalDB

, Видит этот вопрос здесь

, Вы можете dowload обновление здесь

1
ответ дан 31 October 2019 в 13:36

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

, Если Вы хотите использовать SQL Express 2 012 LocalDB от VS2010, у Вас должен быть этот патч, установленный http://www.microsoft.com/en-us/download/details.aspx?id=27756

, Точно так же, как упомянуто в комментариях выше, у меня также было Версия 4.0.30319 SP1Rel Microsoft.NET Framework и начиная с его упомянутого везде, что Вам нужна "Платформа 4.0.2, или Выше" я думал, что я хорош для движения...

Однако, когда я явно загрузил те 4.0.2 патча и установил его, я получил их работа....

1
ответ дан 31 October 2019 в 13:36

Другие вопросы по тегам:

Похожие вопросы: