-
Wymaga .NET Framework 4 zaktualizowanego do co najmniej 4.0.2. Jeśli masz 4.0.2, powinieneś mieć
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework\v4.0.30319\SKUs.NETFramework,Version=v4.0.2
Jeśli zainstalowałeś najnowszą wersję VS 2012, prawdopodobnie masz już wersję 4.0.2. Po prostu najpierw zweryfikuj.
-
Następnie musisz mieć instancję
LocalDb
. Domyślnie masz instancję, której nazwa to pojedynczyv
znak, po którym następuje numer wersji LocalDB w formacie xx.x. Na przykładv11.0
reprezentuje SQL Server 2012. Wystąpienia automatyczne są domyślnie publiczne. Możesz także mieć nazwane instancje, które są prywatne. Nazwane instancje zapewniają izolację od innych instancji i mogą poprawić wydajność, zmniejszając rywalizację o zasoby z innymi użytkownikami bazy danych. Możesz sprawdzić stan instancji za pomocąSqlLocalDb.exe
narzędzie (uruchom je z wiersza poleceń). -
Następnie parametry połączenia powinny wyglądać tak:
"Server=(localdb)\v11.0;Integrated Security=true;"lub
"Źródło danych=(localdb)\test;Integrated Security=true;"
z Twojego kodu . Obaj są tacy sami. Zwróć uwagę na dwa \\
wymagane, ponieważ \v
i \t
oznacza znaki specjalne. Zauważ też, że to, co pojawia się po (localdb)\\
to nazwa Twojej instancji LocalDb. v11.0
jest domyślną instancją publiczną, test
to coś, co stworzyłem ręcznie, co jest prywatne.
-
Jeśli masz już bazę danych (plik .mdf):
"Server=(localdb)\\Test;Integrated Security=true;AttachDbFileName= myDbFile;"
-
Jeśli nie masz bazy danych SQL Server:
"Server=(localdb)\\v11.0;Integrated Security=true;"
Możesz też programowo stworzyć własną bazę danych:
a) aby zapisać go w domyślnej lokalizacji z ustawieniami domyślnymi:
var query = "CREATE DATABASE myDbName;";
b) Aby zapisać go w określonej lokalizacji z własnymi ustawieniami niestandardowymi:
// 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%)" +
";";
I wykonaj!
Przykładową tabelę można załadować do bazy danych w następujący sposób:
@"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');";
Zauważ, że SqlLocalDb.exe
narzędzie nie daje dostępu do baz danych, osobno potrzebujesz sqlcmd
narzędzie, które jest smutne.