Это - довольно старый поток, но так как я переустанавливал свое Сообщество 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;"
У меня была та же проблема некоторое время. Я заметил, что имел:
Data Source= (localdb)\v11.0"
Просто путем добавления одной обратной косой черты это решило проблему для меня:
Data Source= (localdb)\\v11.0"
В файлах базы данных 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 я использую этот Метод, который объяснил в этом сообщение
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
что-то, что я создал вручную, который является частным.
, Если у Вас уже есть база данных (.mdf файл):
"Server=(localdb)\\Test;Integrated Security=true;AttachDbFileName= myDbFile;"
, Если у Вас нет базы данных 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
утилита, которая печальна..
РЕДАКТИРОВАНИЕ: перемещенное положение точки с запятой иначе ошибка произошла бы, если бы код был, копируют/вставляют
Я имею строку подключения Server=(localdb)\v11.0;Integrated Security=true;Database=DB1;
и даже .NET 3.5 подключения программы и выполняю SQL успешно.
, Но многие люди говорят, что.NET 4.0.2 или 4.5 требуется.
Я установил упомянутое обновление.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.
После исправления этого, проблема была решена.
Необходимо установить Точечные Сетевые 4.0.2 или выше, как упомянуто здесь .
4,0 бита не понимают, что синтаксис, требуемый LocalDB
, Вы можете dowload обновление здесь
Это для других, которые изо всех сил пытались бы как я получить эту работу.... Я потратил впустую больше чем половину дня на на вид тривиальную вещь...
, Если Вы хотите использовать 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 патча и установил его, я получил их работа....