-
Requer o .NET Framework 4 atualizado para pelo menos 4.0.2. Se você tem 4.0.2, então você deve ter
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework\v4.0.30319\SKUs.NETFramework,Version=v4.0.2
Se você instalou o VS 2012 mais recente, é provável que já tenha o 4.0.2. Basta verificar primeiro.
-
Em seguida, você precisa ter uma instância deLocalDb
. Por padrão, você tem uma instância cujo nome é um únicov
caractere seguido pelo número da versão de lançamento do LocalDB no formato xx.x. Por exemplo,v11.0
representa o SQL Server 2012. As instâncias automáticas são públicas por padrão. Você também pode ter instâncias nomeadas que são privadas. As instâncias nomeadas fornecem isolamento de outras instâncias e podem melhorar o desempenho reduzindo a contenção de recursos com outros usuários do banco de dados. Você pode verificar o status das instâncias usando oSqlLocalDb.exe
utilitário (execute-o a partir da linha de comando).
-
Em seguida, sua string de conexão deve se parecer com:
"Servidor=(localdb)\v11.0;Segurança Integrada=true;"ou
"Fonte de dados=(localdb)\test;Segurança Integrada=true;"
do seu código . Ambos são iguais. Observe os dois
\\
obrigatório porque \v
e \t
significa caracteres especiais. Observe também que o que aparece depois de (localdb)\\
é o nome da sua instância LocalDb. v11.0
é a instância pública padrão, test
é algo que eu criei manualmente que é privado. -
Se você já possui um banco de dados (arquivo .mdf):
"Server=(localdb)\\Test;Integrated Security=true;AttachDbFileName= myDbFile;"
-
Se você não tiver um banco de dados Sql Server:
"Server=(localdb)\\v11.0;Integrated Security=true;"
E você pode criar seu próprio banco de dados programaticamente:
a) para salvá-lo no local padrão com a configuração padrão:
var query = "CREATE DATABASE myDbName;";
b) Para salvá-lo em um local específico com suas próprias configurações personalizadas:
// 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%)" +
";";
E execute!
Uma tabela de amostra pode ser carregada no banco de dados com algo como:
@"CREATE TABLE supportContacts
(
id int identity primary key,
type varchar(20),
details varchar(30)
);
INSERT INTO supportContacts
(type, details)
VALUES
('Email', '[email protected]'),
('Twitter', '@sqlfiddle');";
Observe que
SqlLocalDb.exe
utilitário não lhe dá acesso a bancos de dados, você precisa separadamente de sqlcmd
utilitário que é triste ..