-
Vyžaduje .NET Framework 4 aktualizovaný alespoň na 4.0.2. Pokud máte 4.0.2, měli byste mít
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework\v4.0.30319\SKUs.NETFramework,Version=v4.0.2
Pokud jste nainstalovali nejnovější VS 2012, je pravděpodobné, že již máte 4.0.2. Nejprve to ověřte.
-
Dále musíte mít instanci
LocalDb
. Ve výchozím nastavení máte instanci, jejíž název je jedenv
znak následovaný číslem verze vydání LocalDB ve formátu xx.x. Napříkladv11.0
představuje SQL Server 2012. Automatické instance jsou ve výchozím nastavení veřejné. Můžete mít také pojmenované instance, které jsou soukromé. Pojmenované instance poskytují izolaci od ostatních instancí a mohou zlepšit výkon omezením sporů o zdroje s ostatními uživateli databáze. Stav instancí můžete zkontrolovat pomocíSqlLocalDb.exe
utility (spusťte jej z příkazového řádku). -
Dále by váš připojovací řetězec měl vypadat takto:
"Server=(localdb)\v11.0;Integrated Security=true;"nebo
"Zdroj dat=(localdb)\test;Integrované zabezpečení=true;"
z vašeho kódu . Oba jsou stejní. Všimněte si dvou \\
vyžadováno, protože \v
a \t
znamená speciální znaky. Všimněte si také, že to, co se objeví za (localdb)\\
je název vaší instance LocalDb. v11.0
je výchozí veřejná instance, test
je něco, co jsem vytvořil ručně, což je soukromé.
-
Pokud již máte databázi (soubor .mdf):
"Server=(localdb)\\Test;Integrated Security=true;AttachDbFileName= myDbFile;"
-
Pokud nemáte databázi SQL Server:
"Server=(localdb)\\v11.0;Integrated Security=true;"
A můžete si vytvořit vlastní databázi programově:
a) uložte jej do výchozího umístění s výchozím nastavením:
var query = "CREATE DATABASE myDbName;";
b) Chcete-li jej uložit na konkrétní místo s vlastním nastavením:
// 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%)" +
";";
A provést!
Ukázkovou tabulku lze načíst do databáze pomocí něčeho jako:
@"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');";
Všimněte si, že SqlLocalDb.exe
utilita vám neposkytuje přístup k databázím, potřebujete samostatně sqlcmd
nástroj, což je smutné..