Erstellen einer mobilen Anwendung mit SQL Server Compact Edition

In dieser schrittweisen Anleitung erhalten Sie Informationen zum Erstellen einer Anwendung in Microsoft Visual Studio 2005, die Microsoft SQL Server 2005 Compact Edition verwendet. Die SQL Server Compact Edition-Datenbank ist Abonnent einer SQL Server 2005-Publikation und verwendet die Mergereplikation zum Downloaden von Informationen aus einer Datenbank von SQL Server 2005 in die SQL Server Compact Edition-Datenbank.

In dieser schrittweisen Anleitung führen Sie folgende Schritte aus:

  1. Konfigurieren einer Publikation von SQL Server 2005.
  2. Konfigurieren von Internetinformationsdienste (IIS) zu Replikationszwecken.
  3. Erstellen eines SQL Server Compact Edition-Abonnements.
  4. Erstellen einer Anwendung.
  5. Bereitstellen der Anwendung und Testen des Abonnements.

Voraussetzungen

Zum Ausführen der vorliegenden schrittweisen Anleitung benötigen Sie Folgendes:

  • Einen Computer, auf dem Windows XP und IIS installiert ist.
  • SQL Server 2005 Service Pack 2 (SP2) oder eine spätere Version, installiert auf demselben Computer wie Visual Studio.

Aufgaben in SQL Server 2005

Vor dem Erstellen der Anwendung müssen Sie eine Publikation in SQL Server 2005 konfigurieren. Im Verlauf der folgenden Schritte erstellen Sie eine Beispieldatenbank und veröffentlichen dann Daten aus dieser Datenbank. Zum Erstellen der Datenbank verwenden Sie eine vordefinierte Skriptdatei und erstellen die Publikation dann mithilfe des Assistenten für neue Publikation.

Erstellen einer Datenbank und Auffüllen mit Daten

  1. Öffnen Sie SQL Server Management Studio.

  2. Wenn Sie aufgefordert werden, eine Verbindung mit einem Server herzustellen, geben Sie (local) unter Servername ein, und klicken Sie dann auf Verbinden.

  3. Öffnen Sie ein neues Abfragefenster. Erstellen Sie eine SQL Server Compact Edition-Datenbank, und füllen Sie sie mit Daten auf.

    USE master;
    GO
    IF EXISTS (SELECT * FROM sys.sysdatabases WHERE name = 'SQLMobile') 
    BEGIN
        DROP Database SQLMobile;
    END
    GO
    CREATE DATABASE SQLMobile;
    GO
    USE SQLMobile;
    GO
    CREATE TABLE MembershipData (MemberID INTEGER IDENTITY (1,1) 
        CONSTRAINT pkMemberID PRIMARY KEY, MemberName NVarChar (50));
    CREATE TABLE FlightData (MemberID INTEGER FOREIGN KEY REFERENCES 
        MembershipData(MemberID), Destination NVarChar (50), FlightStatus 
        NVarChar(50), ArrivalDate DATETIME, FlownMiles INTEGER);
    INSERT INTO MembershipData (MemberName) VALUES ('Mr Don Hall');
    INSERT INTO MembershipData (MemberName) VALUES ('Mr Jon Morris');
    INSERT INTO MembershipData (MemberName) VALUES ('Ms TiAnna Jones');
    INSERT INTO FlightData (MemberID, Destination, FlightStatus, ArrivalDate, FlownMiles) 
        VALUES (1, 'Seattle', 'Flight Delayed 1 hour', '8/25/00', '20000');
    INSERT INTO FlightData (MemberID, Destination, FlightStatus, ArrivalDate, FlownMiles) 
        VALUES (2, 'London', 'Flight on time', '9/12/00', '15000');
    INSERT INTO FlightData (MemberID, Destination, FlightStatus, ArrivalDate, FlownMiles) 
        VALUES (3, 'Sydney', 'Flight Gate Closing', '11/5/00', '30000');
    INSERT INTO FlightData (MemberID, Destination, FlightStatus, ArrivalDate, FlownMiles) 
        VALUES (1, 'Tokyo', 'Delayed Fog', '5/25/00', '25000');
    INSERT INTO FlightData (MemberID, Destination, FlightStatus, ArrivalDate, FlownMiles) 
        VALUES (2, 'Minneapolis', 'Flight on time', '5/1/00', '1000');
    INSERT INTO FlightData (MemberID, Destination, FlightStatus, ArrivalDate, FlownMiles) 
        VALUES (3, 'Memphis', 'Flight Gate Closing', '1/5/00', '1000');
    GO
    
  4. Klicken Sie auf Ausführen, um das Skript auszuführen und die Datenbank zu erstellen. Das Skript wird ausgeführt und erstellt eine neue Datenbank namens SQLMobile.

    Hinweis:
    Sie können auch die Taste F5 drücken oder Ausführen im Menü Abfrage auswählen, um die Abfrage auszuführen.
  5. Erweitern Sie im Objekt-Explorer die Optionen (local) und Datenbanken, und erweitern Sie anschließend SQLMobile, um zu bestätigen, dass die Datenbank erstellt wurde. Aktualisieren Sie die Datenbankliste durch Klicken mit der rechten Maustaste auf Datenbanken, und wählen Sie Aktualisieren aus, falls SQLMobile nicht aufgelistet wird.

Vorbereiten des Servers auf das Veröffentlichen von Daten

Vor dem Erstellen einer Publikation müssen Sie den Server auf das Veröffentlichen vorbereiten, indem Sie ein Snapshot-Agent-Benutzerkonto und einen Freigabeordner erstellen, in dem die Snapshotdateien gespeichert werden. Sobald der Snapshotordner erstellt wurde, wird er für alle Publikationen auf dem Server verwendet. Wenn Sie bereits Publikationen auf diesem Server erstellt haben, können Sie diese Schritte auslassen.

Erstellen des Snapshotbenutzerkontos

  1. Öffnen Sie in der Systemsteuerung unter Verwaltung die Option Computerverwaltung.

  2. Erweitern Sie unter Computerverwaltung die Option Systemprogramme, dann Lokale Benutzer und Gruppen, klicken Sie mit der rechten Maustaste auf Benutzer, und wählen Sie dann Neuer Benutzer aus.

  3. Geben Sie die folgenden Informationen in das Dialogfeld Neuer Benutzer ein, und klicken Sie dann auf Erstellen:

Feld Wert

Benutzername

snapshot_agent

Kennwort

p@ssw0rd

Kennwort bestätigen

p@ssw0rd

Benutzer muss Kennwort bei nächster Anmeldung ändern

Nicht ausgewählt

Kennwort läuft nie ab

ausgewählt

Wichtig:
Diese Einstellungen sollten nur zum Testen verwendet werden. Stellen Sie in einer Produktionsumgebung sicher, dass Ihre Benutzerkonteneinstellungen die Anforderungen an die Netzwerksicherheit erfüllen. Es kann häufig vorkommen, dass Sie ein Domänenbenutzerkonto anstelle eines lokalen Benutzerkontos für den Snapshot-Agent verwenden.

Erstellen des Snapshotordners

  1. Erstellen Sie in Windows-Explorer einen neuen Ordner namens snapshot. Für diese Anleitung können Sie den Ordner im Stammverzeichnis des Laufwerks C bei c:\snapshot erstellen. Klicken Sie mit der rechten Maustaste auf den Ordner snapshot, und wählen Sie Freigabe und Sicherheit aus.

  2. Aktivieren Sie auf der Registerkarte Freigabe die Option Diesen Ordner freigeben, und klicken Sie dann auf Berechtigungen.

  3. Klicken Sie im Dialogfeld Berechtigungen für snapshot auf Hinzufügen.

  4. Geben Sie unter Geben Sie die zu verwendenden Objektnamen ein den Namen computername\snapshot_agent ein, wobei computername der Name des lokalen Computers ist, klicken Sie auf Namen überprüfen, und klicken Sie dann auf OK.

  5. Wählen Sie im Dialogfeld Berechtigungen für snapshot den Eintrag snapshot_agent aus, weisen Sie die Freigabeberechtigungen Ändern und Lesen zu, und klicken Sie dann auf OK.

  6. Wählen Sie die Registerkarte Sicherheit aus.

  7. Klicken Sie auf Hinzufügen.

  8. Geben Sie unter Geben Sie die zu verwendenden Objektnamen ein den Namen computername\snapshot_agent ein, wobei computername der Name des lokalen Computers ist, klicken Sie auf Namen überprüfen, und klicken Sie dann auf OK.

  9. Wählen Sie snapshot_agent aus, und fügen Sie die Berechtigung Schreiben der Liste der aktivierten Berechtigungen hinzu. Das snapshot_agent-Konto verfügt damit über die folgenden Berechtigungen:

    • Lesen und Ausführen
    • Ordnerinhalt auflisten
    • Lesen
    • Schreiben
  10. Klicken Sie auf OK, um das Eigenschaftenfenster von snapshot zu schließen.

  11. Schließen Sie Windows-Explorer.

Erstellen einer Publikation

  1. Erweitern Sie im Objekt-Explorer in SQL Server Management Studio den Knoten (local), sofern dieser noch nicht erweitert ist, und erweitern Sie dann Replikation.

  2. Klicken Sie mit der rechten Maustaste auf den Ordner LokalePublikationen, und wählen Sie Neue Publikation aus.

  3. Klicken Sie auf dem Einführungsbildschirm des Assistenten für neue Publikation auf Weiter.

  4. Wenn Sie auf diesem Computer noch keine Publikationen erstellt haben, werden Sie aufgefordert, einen Verteiler zu konfigurieren. Wählen Sie die erste Option aus, um den lokalen Computer als eigenen Verteiler zu verwenden, und klicken Sie dann auf Weiter.

  5. Wenn Sie auf diesem Computer noch keine Publikationen erstellt haben, werden Sie aufgefordert, einen Snapshotordner anzugeben. Geben Sie den Freigabepfad des Snapshotordners ein, den Sie im vorhergehenden Verfahren erstellt haben. Geben Sie den Freigabepfad in der Form \\servername\share anstelle des lokalen Pfads ein. Im Rahmen dieser schrittweisen Anleitung wird die Eingabe von \\computer\snapshot empfohlen, wobei computer der Name Ihres Computers ist. Klicken Sie dann auf Weiter.

  6. Wählen Sie in der Liste der Datenbanken SQLMobile aus, und klicken Sie dann auf Weiter.

  7. Wählen Sie in der Liste der Publikationstypen den Typ Mergepublikation aus, und klicken Sie dann auf Weiter.

  8. Wählen Sie auf der Seite Abonnententypen die Option Ja, um die Unterstützung für SQL Server Compact Edition-Abonnenten zu aktivieren, und klicken Sie dann auf Weiter.

  9. Aktivieren Sie in der Liste der Objekte, die veröffentlicht werden sollen, das Kontrollkästchen Tabellen. Wenn Sie Tabellen erweitern, sehen Sie, dass beide Tabellen in der SQLMobile-Datenbank ausgewählt sind. Klicken Sie auf Weiter.

  10. Sie erhalten die Benachrichtigung, dass eindeutige Bezeichner den Tabellen hinzugefügt werden. Alle Mergeartikel benötigen eine uniqueindentifier-Spalte. Klicken Sie auf Weiter.

  11. Auf der Seite Tabellenzeilen filtern können Sie nun den veröffentlichten Daten Filter hinzufügen. Im Rahmen dieser schrittweisen Anleitung werden die Daten nicht gefiltert. Klicken Sie auf Weiter.

  12. Auf der Seite Snapshot-Agent können Sie konfigurieren, wann der Snapshot erstellt wird und wie häufig der Snapshot-Agent ausgeführt wird. Klicken Sie auf Weiter, um die Standardeinstellungen anzunehmen.

  13. Klicken Sie im Dialogfeld Agentsicherheit auf Sicherheitseinstellungen.

    1. Geben Sie in das Dialogfeld Sicherheit für den Snapshot-Agent die Anmeldeinformationen für das im vorhergehenden Verfahren erstellte Konto ein. Das Prozesskonto lautet computer_name\snapshot_agent (wobei computer_name der Name Ihres Computers ist), und das Kennwort lautet p@ssw0rd.
    2. Klicken Sie zum Speichern der Einstellungen auf OK.
    3. Klicken Sie auf der Seite Agentsicherheit auf Weiter.
  14. Im Bildschirm Aktionen des Assistenten können Sie festlegen, wann die Publikation erstellt wird und ob eine Skriptdatei erstellt werden soll. Deaktivieren Sie Snapshot sofort erstellen, und klicken Sie dann auf Weiter.

  15. Geben Sie im Bildschirm Assistenten abschließenSQLMobile als Name für die Publikation ein, und klicken Sie dann auf Fertig stellen.

  16. Die Publikation wird erstellt. Klicken Sie nach dem Beenden des Assistenten auf Schließen.

Festlegen von Berechtigungen

Sie müssen Berechtigungen für das Snapshot-Agent-Konto und für das anonyme Benutzerkonto in IIS erteilen. Außerdem müssen Sie das anonyme Benutzerkonto in IIS der Publikationszugriffsliste hinzufügen.

Festlegen von Datenbankberechtigungen

  1. Erweitern Sie in im Objekt-Explorer den Knoten Sicherheit, klicken Sie mit der rechten Maustaste auf Anmeldungen, und wählen Sie Neue Anmeldung aus.

  2. Wählen Sie im Dialogfeld Neue Anmeldung die Option Windows-Authentifizierung aus, klicken Sie auf Suchen, geben Sie computername\snapshot_agent im Feld Geben Sie die zu verwendenden Objektnamen ein ein, wobei computername für den Namen Ihres Computers steht, klicken Sie auf Namen überprüfen, und klicken Sie dann auf OK.

  3. Wählen Sie im Navigationsbereich den Bereich Benutzerzuordnung aus.

  4. Wählen Sie in der Liste der Datenbanken distribution und die db_owner-Rolle aus, wählen Sie SQLMobile und die db_owner-Rolle aus, und klicken Sie dann auf OK.

  5. Klicken Sie mit der rechten Maustaste auf Anmeldungen, und wählen Sie Neue Anmeldung aus.

  6. Wählen Sie im Dialogfeld Neue Anmeldung die Option Windows-Authentifizierung aus, klicken Sie auf Suchen, geben Sie computername\iusr_computername im Feld Geben Sie die zu verwendenden Objektnamen ein ein, wobei computername für den Namen Ihres Computers steht, klicken Sie auf Namen überprüfen, und klicken Sie dann auf OK.

  7. Wählen Sie im Navigationsbereich den Bereich Benutzerzuordnung aus.

  8. Wählen Sie in der Liste der Datenbanken distribution und SQLMobile aus, und klicken Sie dann auf OK.

Gewähren von Publikationszugriff

  1. Erweitern Sie im Objekt-Explorer den Knoten Replikation und dann Publikationen, klicken Sie mit der rechten Maustaste auf die Publikation [SQLMobile]:SQLMobile, und klicken Sie dann auf Eigenschaften.

  2. Wählen Sie im Navigationsbereich Publikationszugriffsliste aus.

  3. Klicken Sie auf Hinzufügen. Das IUSR-Konto wird im Dialogfeld Publikationszugriff hinzufügen aufgelistet. Markieren Sie es, und klicken Sie dann auf OK.

  4. Stellen Sie sicher, dass das IUSR-Konto in der Publikationszugriffsliste enthalten ist, und klicken Sie dann auf OK.

Erstellen des Publikationssnapshots

Damit Sie ein Abonnement für die SQLMobile-Publikation initialisieren können, müssen Sie den Publikationssnapshot erstellen.

Erstellen des Publikationssnapshots

  1. Erweitern Sie in SQL Server Management Studio im Objekt-Explorer den Computerknoten (local).

  2. Erweitern Sie den Ordner Lokale Publikationen, wählen Sie den Publikationsnamen aus, klicken Sie mit der rechten Maustaste auf SQLMobile, und klicken Sie dann auf Status des Snapshot-Agents anzeigen.

  3. Klicken Sie im Dialogfeld Status des Snapshot-Agents anzeigen auf Starten.

    Stellen Sie sicher, dass der Snapshotauftrag erfolgreich abgeschlossen wurde, bevor Sie den Vorgang fortsetzen.

Konfigurieren von IIS und SQL Server 2005 für die Websynchronisierung

Nachdem nun eine Publikation für SQL Server konfiguriert wurde, müssen Sie sicherstellen, dass diese Publikation über das Netzwerk für SQL Server Compact Edition-Clients verfügbar ist. SQL Server Compact Edition stellt über IIS eine Verbindung mit SQL Server her. Sie sollten ein virtuelles Verzeichnis erstellen und so konfigurieren, dass der Server-Agent für SQL Server Compact Edition für Clients verfügbar ist.

Installieren der Serverkomponenten von SQL Server Compact Edition

  1. Suchen Sie im Windows-Explorer folgendes Verzeichnis:

    C:\Programme\Microsoft SQL Server\90\Tools\Binn\VSShell\Common7\IDE

  2. Doppelklicken Sie auf SQLCE30SETUPDE.MSI, um das Installationsprogramm auszuführen.

  3. Auf dem Einführungsbildschirm des Setup-Assistenten klicken Sie auf Weiter.

  4. Lesen Sie die Microsoft-Software-Lizenzbedingungen, und stimmen Sie ihnen zu, und klicken Sie dann auf Weiter.

  5. Stellen Sie im Bildschirm Systemkonfigurationsprüfung sicher, dass alle Elemente die Prüfung bestehen. Das letzte Element in der Liste wird als Warnung aufgeführt, falls SQL Server 2000 auf Ihrem Computer nicht installiert ist. Da Sie SQL Server 2005 verwenden, ist dies für Sie unerheblich. Klicken Sie auf Weiter.

  6. Klicken Sie im folgenden Bildschirm auf Weiter, und klicken Sie dann auf Installieren, um mit der Installation zu beginnen.

  7. Klicken Sie auf Fertig stellen.

Konfigurieren der Publikation für die Websynchronisierung

  1. Erweitern Sie in SQL Server Management Studio im Objekt-Explorer den Computerknoten (local).

  2. Erweitern Sie den Ordner Lokale Publikationen, wählen Sie den Publikationsnamen aus, klicken Sie mit der rechten Maustaste, und wählen Sie dann Websynchronisierung konfigurieren aus.

  3. Auf dem Einführungsbildschirm des Assistenten klicken Sie auf Weiter.

  4. Wählen Sie im Bildschirm Abonnententyp den Typ SQL Server Compact Edition aus, und klicken Sie dann auf Weiter.

  5. Geben Sie im Bildschirm Webserver den Namen Ihres Computers in das Textfeld Computer mit IIS ein (sofern dieser fehlt), und klicken Sie dann auf Neues virtuelles Verzeichnis erstellen.

  6. Erweitern Sie in der angezeigten Struktur den Knoten Websites, und wählen Sie dann Standardwebsite aus.

  7. Klicken Sie auf Weiter.

  8. Geben Sie im Bildschirm Informationen zum virtuellen Verzeichnis in das Textfeld Alias die Zeichenfolge SQLMobile ein, und klicken Sie dann auf Weiter.

    Wenn ein Dialogfeld mit einer Warnung angezeigt wird, klicken Sie auf Ja.

  9. Wählen Sie im Bildschirm Sichere Kommunikation die Option Keinen sicheren Kanal (SSL) verlangen aus.

  10. Wichtig   In einer Produktionsumgebung sollten Sie die SSL-Verschlüsselung aktivieren, um Daten zu schützen, die über das Internet zwischen dem Abonnenten und dem Server mit IIS ausgetauscht werden. Wählen Sie im Bildschirm Clientauthentifizierung die Option Clients stellen die Verbindung anonym her aus, und klicken Sie dann auf Weiter.

  11. Nehmen Sie die Standardeinstellungen im Bildschirm Anonymer Zugriff an, indem Sie auf Weiter klicken.

  12. Geben Sie im Bildschirm Zugriff auf Snapshotfreigabe Folgendes ein: \\computer\snapshot. Dabei ist computer der Name Ihres Computers. Klicken Sie dann auf Weiter.

    Wenn Sie eine Warnung erhalten, dass die Snapshotfreigabe leer ist, klicken Sie auf Ja.

  13. Klicken Sie auf Fertig stellen.

  14. Klicken Sie auf Schließen.

  15. Geben Sie in Internet Explorer den URL https://localhost/SQLMobile/sqlcesa30.dll?diag unter Adresse ein, und klicken Sie dann auf Wechseln zu. Dadurch wird eine Verbindung mit dem Server im Diagnosemodus hergestellt. Stellen Sie sicher, dass der Diagnosebericht des Server-Agents für SQL Server Compact Edition eine erfolgreiche Ausführung anzeigt.

Aufgaben in SQL Server Compact Edition

Vor der Entwicklung einer SQL Server Compact Edition-gestützten Anwendung kann oft Zeit gespart werden, indem die SQL Server Compact Edition-Datenbank und das Abonnement vorab erstellt werden. SQL Server Management Studio ermöglicht Ihnen das Erstellen und Bearbeiten einer SQL Server Compact Edition-Datenbank auf dem lokalen Computer. Sie können diese Datenbank dann beim Entwickeln der Anwendung verwenden.

Erstellen einer neuen Datenbank von SQL Server Compact Edition

  1. Klicken Sie in SQL Server Management Studio im Objekt-Explorer auf Verbinden, und wählen Sie dann SQL Server Compact Edition aus.

  2. Wählen Sie im Feld Datenbankdatei die Option <Neue Datenbank> aus.

  3. Geben Sie in das Textfeld für Dateinamen C:\sqlmobile.sdf ein, und klicken Sie dann auf OK.

    Wenn Sie eine Warnung wegen eines leeren Kennworts erhalten, klicken Sie auf Ja. Die Datenbank in diesem Lernprogramm ist nicht kennwortgeschützt oder verschlüsselt.

  4. Klicken Sie im Dialogfeld Verbindung mit dem Server herstellen auf Verbinden.

    Ein neuer Knoten mit der Bezeichnung SQL Server Compact Edition [Arbeitsplatz\...\sqlmobile] wird dem Objekt-Explorer hinzugefügt.

Erstellen eines neuen Abonnements

  1. Erweitern Sie im Objekt-Explorer den Knoten SQL Server CompactEdition und dann Replikation, klicken Sie mit der rechten Maustaste auf Abonnements, und wählen Sie dann Neues Abonnement aus.

  2. Klicken Sie auf dem Einführungsbildschirm auf Weiter.

  3. Wählen Sie im Bildschirm Publikation auswählen in der Dropdownliste Verleger den Befehl <SQL Server-Verleger suchen…> aus.

  4. Geben Sie den Namen des lokalen Computers in das Dialogfeld Verbindung mit dem Server herstellen ein, oder wählen Sie ihn aus, und klicken Sie dann auf Verbinden.

  5. Erweitern Sie im Bildschirm Publikation auswählen in der Liste der Publikationen SQLMobile, wählen Sie SQLMobile aus, und klicken Sie dann auf Weiter.

  6. Geben Sie im Bildschirm Abonnement identifizieren SQLMobile als Abonnementname ein, und klicken Sie dann auf Weiter.

  7. Geben Sie im Bildschirm Webserverauthentifizierung den URL für das im vorhergehenden Verfahren erstellte virtuelle Verzeichnis ein. Sie haben in dieser schrittweisen Anleitung bereits ein virtuelles Verzeichnis mit dem URL https://localhost/SQLMobile erstellt.

  8. Klicken Sie auf Der Abonnent stellt eine anonyme Verbindung her und anschließend auf Weiter.

  9. Klicken Sie im Bildschirm zur SQL Server-Authentifizierung auf Weiter, um die Standardeinstellungen zu übernehmen.

    Im letzten Bildschirm des Assistenten wird Beispielcode angezeigt, den Sie beim Erstellen eines Abonnements in Ihrer Anwendung verwenden können. Markieren Sie den Beispielcode (entweder Visual Basic oder C#, abhängig von der Sprache, die Sie zum Erstellen der Anwendung verwenden), und kopieren Sie ihn. Markieren Sie hierzu den Code, und drücken Sie STRG+C. Starten Sie Editor oder einen anderen Text-Editor, und fügen Sie den Beispielcode ein. Dieser Code wird beim Erstellen der Anwendung in den folgenden Verfahren verwendet.

  10. Nachdem Sie den Beispielcode kopiert haben, klicken Sie auf Fertig stellen.

  11. Klicken Sie auf Schließen.

Erstellen einer Anwendung

Erstellen eines neuen Projekts für intelligente Geräte

  1. Öffnen Sie Visual Studio 2005.

  2. Wählen Sie im Menü Datei die Option Neu und anschließend Projekt aus.

  3. Erweitern Sie im Dialogfeld Neues Projekt in der Struktur Projekttypen die Entwicklungssprache, und wählen Sie dann Intelligentes Gerät aus.

  4. Wählen Sie in der Vorlagenliste den Projekttyp aus, den Sie erstellen möchten. Wählen Sie im Rahmen dieser schrittweisen Anleitung den Projekttyp für die Pocket PC 2003-Anwendung aus.

  5. Geben Sie einen Namen und einen Speicherort für das Projekt an, und klicken Sie dann auf OK. Benennen Sie das Projekt im Rahmen dieser schrittweisen Anleitung mit SQLMobile.

    In Visual Studio wird ein neues Projekt erstellt und als Form1 so angezeigt wie auf einem intelligenten Gerät.

Hinzufügen von Verweisen

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Verweise, und wählen Sie Verweis hinzufügen aus.

    Hinweis:
    Wenn der Ordner Verweise nicht im Projektmappen-Explorer aufgelistet wird, klicken Sie oben im Projektmappen-Explorer auf Alle Dateien anzeigen.
  2. Wählen Sie in der Liste der .NET-Assemblys System.Data.SqlServerCe aus, und klicken Sie dann auf OK. Wird System.Data.SqlServerCe nicht aufgelistet, führen Sie die folgenden Schritte aus:

    1. Klicken Sie auf die Registerkarte Durchsuchen.
    2. Suchen Sie das folgende Verzeichnis:
      C:\Programme\Microsoft Visual Studio 8\Common7\IDE
    3. Wählen Sie System.Data.SqlServerCe.dll aus, und klicken Sie dann auf OK.

    Die Liste der Verweise im Projektmappen-Explorer enthält nun auch System.Data.SqlServerCe, sodass die Assembly in Ihrem Projekt verwendet werden kann.

  3. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Form1.cs oder Form1.vb, und wählen Sie Code anzeigen aus.

  4. Fügen Sie zu Beginn des Formularcodes eine Direktive zum Verwenden des System.Data.SqlServerCe-Namespaces ein:

    [C#]

    using System.Data.SqlServerCe;
    

    [VB]

    Imports System.Data.SqlServerCe
    

Hinzufügen einer Datenverbindung

  1. Wechseln Sie im Hauptfenster zurück zur Ansicht Entwurf (Standardeinstellung) für Form1.

  2. Klicken Sie im Menü Daten auf Neue Datenquelle hinzufügen.

    Hinweis   Wenn die Option Neue Datenquelle hinzufügen nicht angezeigt wird, aktivieren Sie die Ansicht Entwurf für Form1, und wechseln Sie dann zum Menü Daten zurück.

  3. Wählen Sie im Fenster Einen Datenquellentyp auswählen den Typ Datenbank aus, und klicken Sie dann auf Weiter.

  4. Klicken Sie im Dialogfeld Wählen Sie Ihre Datenverbindung auf Neue Verbindung.

  5. Falls das Dialogfeld Verbindung hinzufügen angezeigt wird, klicken Sie auf Ändern.

  6. Wählen Sie im Dialogfeld Datenquelle auswählen unter Datenquelle die Option Microsoft SQL Server Compact Edition aus. (Im Fall einer vorher vorhandenen Verbindung hat dieses Dialogfeld die Bezeichnung Datenquelle wechseln). Wählen Sie in der Liste der Datenprovider .NET Framework-Datenanbieter für SQL Server Compact Edition aus. Klicken Sie auf Weiter oder auf OK.

  7. Wählen Sie im Dialogfeld Verbindung hinzufügen unter Datenquelle die Option Arbeitsplatz aus.

    Klicken Sie im Bereich Verbindungseigenschaften unter Datenbank auf Durchsuchen, und suchen Sie dann nach der Datenbank, die Sie im vorhergehenden Verfahren erstellt haben. Wenn Sie den hier genannten Schritten gefolgt sind, befindet sich die Datenbank unter C:\sqlmobile.sdf.

  8. Klicken Sie auf Verbindung testen und anschließend auf OK, um die neue Datenverbindung zu erstellen.

  9. Klicken Sie im Dialogfeld Wählen Sie Ihre Datenverbindung auf Weiter.

  10. Falls ein Dialogfeld mit der Frage angezeigt wird, ob die Datendatei in das aktuelle Projekt kopiert werden soll, klicken Sie auf Ja.

  11. Klicken Sie im Fenster zum Speichern der Verbindungszeichenfolge auf Weiter.

  12. Wählen Sie im Fenster Datenbankobjekte auswählen das Objekt Tabellen aus, und klicken Sie dann auf Fertig stellen.

Auswählen der anzuzeigenden Daten

  1. Wählen Sie im Menü Daten den Befehl Datenquellen anzeigen aus.

  2. Ziehen Sie die MembershipData-Tabelle aus dem Fenster Datenquellen in das Fenster für den Entwurf für Form1. Es wird ein Datenraster in Form1 unter automatischer Angabe der Spaltennamen erstellt.

  3. Klicken Sie mit der rechten Maustaste auf das Datenraster, und klicken Sie dann auf Eigenschaften.

  4. Ändern Sie im Fenster Eigenschaften den Wert Andocken in Oben. Dies ist durch Klicken auf die oberste Leiste in der angezeigten Grafikdarstellung oder durch Eingeben von Oben in das Wertfeld möglich. Das Datenraster wird verschoben und in der Größe so angepasst, dass der obere Bereich von Form1 gefüllt wird.

  5. Klicken Sie in der rechten oberen Ecke des Datenrasters auf den kleinen Pfeil. Wählen Sie im angezeigten Menü den Befehl Datenformulare generieren aus.

  6. Ziehen Sie die FlightData-Tabelle aus dem Fenster Datenquellen in das Fenster Form1 [Entwurf]. Es wird ein Datenraster in Form1 unter automatischer Angabe der Spaltennamen erstellt.

  7. Mithilfe der Einstellungen unter Eigenschaften können Sie die Eigenschaft Andocken für dieses Datenraster auf Unten festlegen.

Hinzufügen von Code

Fügen Sie auf der Codeseite für die Anwendung Folgendes hinzu: eine Zeichenfolgenvariable, die den Pfad und den Namen der Datenbankdatei enthält, Code zum Löschen der Datenbankdatei, sofern diese bereits vorhanden ist, und Code zum Herstellen einer Verbindung mit der SQL Server-Publikation, zum Synchronisieren der Daten und zum Erstellen einer neuen lokalen Datenbank, die die veröffentlichten Daten enthält.

Hinzufügen von Code

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Form1, und wählen Sie Code anzeigen aus.

  2. Auf der Codeseite ist die Klassendefinition für Form1 verfügbar. Fügen Sie eine Zeichenfolgenvariable hinzu, und weisen Sie den Pfad und Dateinamen der SDF-Datei zu der Variablen hinzu. Die von Visual Studio in den vorherigen Schritten erstellte Datenquelle erwartet, dass die Datenbankdatei sich im Ordner \Programme\ApplicationName befindet, wobei ApplicationName den Namen der Anwendung darstellt. Wenn Sie beispielsweise das neue Projekt SQLMobile genannt haben, sollte die Zeichenfolgenvariable auf "\Program Files\SQLMobile\sqlmobile.sdf" festgelegt sein.

  3. Die ersten paar Zeilen der Klassendefinition sollten wie der folgende Code aussehen:

    [C#]

    public partial class Form1 : System.Windows.Forms.Form
    {
       private System.Windows.Forms.MainMenu mainMenu1;
       string filename = @"\Program Files\SQLMobile\sqlmobile.sdf";
    
       public Form1()
       {
          InitializeComponent();
       }
    

    [Visual Basic]

    Public Class Form1
    
        Dim filename As New String _
          ("\Program Files\SQLMobile\sqlmobile.sdf")
    
  4. Erstellen Sie eine neue Methode, die die Datenbankdatei löscht, falls diese zurzeit vorhanden ist. Damit wird sichergestellt, dass die Anwendung jedesmal die neuesten Daten lädt, wenn sie ausgeführt wird. Diese Methode sollte DeleteDB genannt werden. Der Code sollte wie der folgende aussehen:

    [C#]

    private void DeleteDB()
    {
       if (System.IO.File.Exists(filename)) 
       {
          System.IO.File.Delete(filename);
       }
    }
    

    [Visual Basic]

    Sub DeleteDB()
       If System.IO.File.Exists(filename) Then
          System.IO.File.Delete(filename)
       End If
    End Sub
    
  5. Erstellen Sie eine neue Methode mit der Bezeichnung Sync, die die Synchronisierung durchführt. Dazu benötigen Sie den Code, den Sie in einem vorhergehenden Schritt aus dem Assistenten für neue Publikation kopiert haben. Nach dem Einfügen des Codes müssen Sie zwei Änderungen daran vornehmen:

    1. Ändern Sie den Wert für SubscriberConnectionString so, dass er auf den richtigen Pfad und Dateinamen zeigt, wie in der Dateinamenvariablen angegeben.

    2. Ändern Sie den Wert von AddOption von ExistingDatabase in CreateDatabase.
      Die fertige Sync-Methode sollte folgendermaßen aussehen:
      [C#]

      private void Sync()
      {
         SqlCeReplication repl = new SqlCeReplication();
      
         repl.InternetUrl = @"http://<computername>/sqlmobile/sqlcesa30.dll";
         repl.Publisher = @"<computername>";
         repl.PublisherDatabase = @"SQLMobile";
         repl.PublisherSecurityMode = SecurityType.NTAuthentication;
         repl.Publication = @"SQLMobile";
         repl.Subscriber = @"SQLMobile";
         repl.SubscriberConnectionString = @"Data Source='" + filename + 
           "';Password='';Max Database Size='128';Default Lock Escalation 
           ='100';";
         try
         {
            repl.AddSubscription(AddOption. CreateDatabase);
            repl.Synchronize();
         }
         catch (SqlCeException e)
         {
            MessageBox.Show(e.ToString());
         }
      }
      

      [Visual Basic]

      Sub Sync()
         Dim repl As New SqlCeReplication()
         repl.InternetUrl = "http://<computername>/SQLMobile/sqlcesa30.dll"
         repl.Publisher = "<computername>"
         repl.PublisherDatabase = "SQLMobile"
         repl.PublisherSecurityMode = SecurityType.NTAuthentication
         repl.Publication = "SQLMobile"
         repl.Subscriber = "SQLMobile"
         repl.SubscriberConnectionString = _
            "Data Source='" + filename + "';Password='';" _ 
            & "Max Database Size='128';Default Lock Escalation ='100';"
         try
            repl.AddSubscription(AddOption. CreateDatabase) 
            repl.Synchronize() 
         catch err as SqlCeException
            MessageBox.Show(err.ToString)
         end tryEnd Sub
      
  6. Fügen Sie abschließend Code zu Beginn des Form1_Load-Ereignishandlers hinzu, der die beiden soeben erstellten Methoden aufruft. Der Form1_Load-Ereignishandler sollte folgendermaßen aussehen:

    [C#]

    private void Form1_Load(object sender, EventArgs e)
    {
       DeleteDB();
       Sync();
    
    // TODO: Delete this line of code.
       this.flightDataTableAdapter.Fill(this.sqlmobileDataSet.FlightData);
    // TODO: Delete this line of code.
       this.membershipDataTableAdapter.Fill(this.sqlmobileDataSet.MembershipData);
    }
    

    [Visual Basic]

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       DeleteDB()
       Sync()
    
       'TODO: Delete this line of code.
       Me.FlightDataTableAdapter.Fill(Me.SqlmobileDataSet.FlightData)
       'TODO: Delete this line of code ...
       Me.MembershipDataTableAdapter.Fill(Me.SqlmobileDataSet.MembershipData)
    End Sub
    

Bereitstellen und Testen der Anwendung

Bereitstellen der Anwendung

  1. Wählen Sie im Menü Debuggen den Befehl Debuggen starten aus.

  2. Falls das Dialogfeld Bereitstellen angezeigt wird, wählen Sie die Option Pocket PC 2003 SE-Emulator aus, und klicken Sie dann auf Bereitstellen.

  3. Der Emulator wird in einem neuen Fenster geöffnet. Bei der ersten Bereitstellung der Anwendung im Emulator werden .NET Compact Framework und SQL Server Compact Edition installiert. Dieser Vorgang kann einige Minuten in Anspruch nehmen. Nach der Installation wird Ihre Anwendung installiert und ausgeführt.

    Die beiden Datenblätter werden in Ihrer Anwendung geladen und angezeigt. Wenn Sie auf einen Wert im MembershipData-Datenraster klicken, werden die Daten im FlightData-Datenraster automatisch aktualisiert.

  4. Schließen Sie die Anwendung, und klicken Sie in Visual Studio im Menü Debuggen auf Debuggen beenden.

Siehe auch

Konzepte

Sichern von Datenbanken (SQL Server Compact Edition)

Hilfe und Information

Informationsquellen für SQL Server Compact Edition