Advanced
Services
|
Verbindung zur SqlServerCompactEdition |
|
SQL-Server-Compact-Edition
Die SQL-Server-Compact-Edition ist die kleinere Schwester des SQL-Servers. Die Daten werden nicht zentral verwaltet
wie beim großen Bruder, sondern es gibt stattdessen Datenbankdateien mit der Endung .sdf . Diese legt man am besten
ins Projektverzeichnis des jeweiligen C#-projektes von Visualstudio.
Das folgende ist eine Kurzbeschreibung des Vorgehens.
legen sie an ein neues c#-projekt in visualstudio mit namen
SQLServerTest
in diesem beispiel wird eine verbindung zu einer datenbank namens northwind.sdf hergestellt.
northwind.sdf ist eine datenbank der SQL-Server-Compact-Edition.
c# kann mit dieser datenbank zusammenarbeiten.
schritt 1
--------------
die northwind.sdf datenbanktabellen können sie hier herunterladen:
Northwind.sdf
diese muß in das release- oder debug-verzeichnis des jeweiligen projekts kopiert werden.
schritt 2
--------------
als nächstes müssen sie ein assembly hinzufügen
System.Data.SqlServerCe (in system.data.sqlserverce.dll)
schritt 3
--------------
das notwendige using ist
using System.Data.SqlServerCe;
schritt 4
--------------
für die compact edition gibt es die analoge klassen wie für SQLServer
es heißt also nun
SqlCeConnection an stelle von SqlConnection
SqlCeCommand an stelle von SqlCommand
SqlCeDataReader an stelle von SqlDataReader
usw.
die methoden sind die gleichen.
schritt 5
--------------
der richtige connectionstring lautet
string connectString = "Data Source='northwind.sdf';Default Lock Timeout=60000";
bemerkungen
--------------
die northwind.sdf enthält nur einen teil der tabellen der großen northwinddatenbank des sqlservers.
es gibt im netz aber auch eine komplette fassung der northwinddatenbank für die CompactEdition.
des weiteren gibt es noch eine zweite datenbank pub.sdf. diese beiden tabellensammlungen können
sie hier herunterladen
NorthwindKomplett.sdf
pubs.sdf
die tabelle der tabellen
---------------------------
die tabelle, die information über die in der datenbank vorhandenen tabellen liefert
heißt
information_schema.tables
ein select-kommando, das die komplette information daraus ausliest heißt
select * from information_schema.tables;
ein select-kommando, das nur die namen der tabellen daraus ausliest heißt
select table_name from information_schema.tables where table_type = 'TABLE';
ein testprogramm
-------------------
using System;
using System.Data.SqlServerCe;
namespace Datenbanken
{
class Program
{
static void Main(string[] args)
{
SqlCeConnection conn = new SqlCeConnection();
string connStr = "Data Source='Northwind.sdf';Default Lock Timeout=60000";
string connStr2 = "Data Source='NorthwindKomplett.sdf';Default Lock Timeout=60000";
conn.ConnectionString = connStr2;
try
{
conn.Open();
Console.WriteLine("Verbindungsaufbau erfolgreich");
//..
//..
conn.Close();
Console.WriteLine("Verbindung geschlossen");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}