Advanced  Services Verbindung zur SqlServerCompactEdition Back Next Up Home

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);
            }
        }
    }
}
Valid XHTML 1.0 Transitional top Back Next Up Home