Créer une application mobile à l'aide de SQL Server Compact Edition

Dans cette procédure pas à pas, vous allez apprendre à créer une application dans Microsoft Visual Studio 2005, qui utilise Microsoft SQL Server 2005 Compact Edition. La base de données SQL Server Compact Edition sera un Abonné à une publication SQL Server 2005 et utilisera la réplication de fusion pour télécharger des informations à partir d'une base de données SQL Server 2005 dans la base de données SQL Server Compact Edition.

Dans cette procédure pas à pas, vous allez effectuer les opérations suivantes :

  1. Configurer une publication SQL Server 2005.
  2. Configurer les services Internet (IIS) pour la réplication.
  3. Créer un abonnement SQL Server Compact Edition.
  4. Créer une application.
  5. Déployer l'application et tester l'abonnement.

Configuration requise

Pour exécuter cette procédure pas à pas, vous devez disposer des éléments suivants :

  • Ordinateur sur lequel sont installés Windows XP et IIS
  • SQL Server 2005 Service Pack 2 (SP2) ou version ultérieure, installé sur le même ordinateur que Visual Studio.

Tâches SQL Server 2005

Avant de créer l'application, vous devez configurer un abonnement dans SQL Server 2005. Dans les étapes ci-dessous, vous allez créer un exemple de base de données, puis publier des données à partir de celle-ci. Vous allez créer la base de données à l'aide d'un fichier script préexistant, puis créer la publication grâce à l'Assistant Nouvelle publication.

Création d'une base de données et remplissage avec des données

  1. Ouvrez SQL Server Management Studio.

  2. Lorsque le système vous demande de vous connecter à un serveur, tapez (local) pour le Nom du serveur, puis cliquez sur Se connecter.

  3. Ouvrez une nouvelle fenêtre de requête. Créez une base de données SQL Server Compact Edition, puis remplissez-la avec des données.

    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. Cliquez sur Exécuter (!) pour exécuter le script et créer la base de données. Le script s'exécute et crée une nouvelle base de données nommée SQLMobile.

    Remarque :
    Vous pouvez également appuyer sur la touche F5 ou choisir Exécuter dans le menu Requête pour exécuter la requête.
  5. Pour confirmer que la base de données a été créée, dans l'Explorateur d'objets, développez successivement (local), Bases de données, puis SQLMobile. Si la base de données SQLMobile n'est pas dans la liste, mettez à jour la liste des bases de données en cliquant avec le bouton droit sur Bases de données, puis en sélectionnant Actualiser.

Préparation du serveur en vue de la publication des données

Avant de créer une publication, vous devez préparer le serveur en vue de la publication, en créant un compte d'utilisateur d'Agent de capture instantanée et un dossier partagé où les fichiers de captures instantanées seront stockés. Lorsque le dossier de fichiers de captures instantanées est créé, il est utilisé pour toutes les publications sur le serveur. Si vous avez créé précédemment des publications sur ce serveur, vous pouvez ignorer ces étapes.

Création du compte d'utilisateur d'Agent de capture instantanée

  1. Dans le Panneau de configuration, dans Outils d'administration, ouvrez Gestion de l'ordinateur.

  2. Dans Gestion de l'ordinateur, développez Outils système, puis Utilisateurs et groupes locaux, cliquez avec le bouton droit sur Utilisateurs, puis choisissez Nouvel utilisateur.

  3. Entrez les informations suivantes dans la boîte de dialogue Nouvel utilisateur, puis cliquez sur Créer :

Champ Valeur

Nom d'utilisateur

agent_capture

Mot de passe

p@ssw0rd

Confirmer le mot de passe

p@ssw0rd

L'utilisateur doit changer le mot de passe à la prochaine ouverture de session

Non sélectionné

Le mot de passe n'expire jamais

sélectionné

Important :
Ces paramètres doivent être utilisés à des fins de test uniquement. Dans un environnement de production, assurez-vous que les paramètres du compte d'utilisateur répondent aux exigences de sécurité du réseau. Souvent, vous utilisez un compte d'utilisateur de domaine à la place d'un compte d'utilisateur local pour l'Agent de capture instantanée.

Création du dossier capture instantanée

  1. Dans l'Explorateur Windows, créez un nouveau dossier nommé snapshot. Pour cette procédure pas à pas, vous pouvez créer le dossier dans le répertoire racine du lecteur C:, c:\snapshot. Cliquez avec le bouton droit sur le dossier snapshot et choisissez Partage et sécurité.

  2. Sous l'onglet Partage, sélectionnez Partager ce dossier, puis cliquez sur Autorisations.

  3. Dans Autorisations pour capture instantanée, cliquez sur Ajouter.

  4. Dans Entrez le nom de l'objet à sélectionner, tapez nom_ordinateur\Agent_capture_instantanéenom_ordinateur représente le nom de l'ordinateur local, cliquez sur Vérifier les noms, puis cliquez sur OK.

  5. Dans Autorisations pour capture instantanée, sélectionnez agent_capture, attribuez les autorisations de partage Modifier et Lecture, puis cliquez sur OK.

  6. Sélectionnez l'onglet Sécurité.

  7. Cliquez sur Ajouter.

  8. Dans Entrez le nom de l'objet à sélectionner, tapez nom_ordinateur\Agent_capture_instantanéenom_ordinateur représente le nom de l'ordinateur local, cliquez sur Vérifier les noms, puis cliquez sur OK.

  9. Sélectionnez Agent_capture_instantanée et ajoutez l'autorisation Écriture à la liste des autorisations accordées. Les autorisations suivantes sont à présent accordées au compte agent_capture :

    • Lecture et exécution
    • Affichage du contenu du dossier
    • Lecture
    • Écriture
  10. Cliquez sur OK pour fermer la fenêtre Propriétés de capture instantanée.

  11. Fermez l'Explorateur Windows.

Création d'une publication

  1. Dans l'Explorateur d'objets, dans SQL Server Management Studio, développez le nœud (local), si nécessaire, puis développez Réplication.

  2. Cliquez avec le bouton droit sur le dossier Publicationslocales, puis choisissez Nouvelle publication.

  3. Dans le premier écran de l'Assistant Nouvelle publication, cliquez sur Suivant.

  4. Si vous n'avez pas déjà créé de publication sur cet ordinateur, vous devez configurer un serveur de distribution. Sélectionnez la première option pour utiliser l'ordinateur local comme son propre serveur de distribution, puis cliquez sur Suivant.

  5. Si vous n'avez pas déjà créé de publication sur cet ordinateur, vous devez spécifier un dossier de fichiers de captures instantanées. Tapez le chemin d'accès du partage du dossier de captures instantanées que vous avez créé dans la procédure précédente. Entrez le chemin d'accès du partage sous la forme \\servername\share à la place du chemin d'accès local. Dans cette procédure pas à pas, il est recommandé de taper \\ordinateur\capture instantanée, où ordinateur représente le nom de votre ordinateur, puis de cliquer sur Suivant.

  6. Dans la liste des bases de données, sélectionnez SQLMobile, puis cliquez sur Suivant.

  7. Dans la liste des types de publications, sélectionnez Publication de fusion, puis cliquez sur Suivant.

  8. Dans la page Typesd'abonnés, sélectionnez Oui pour activer la prise en charge des Abonnés SQL Server Compact Edition, puis cliquez sur Suivant.

  9. Dans la liste des objets à publier, activez la case à cocher Tables. Si vous développez Tables, vous pouvez voir que les deux tables de la base de données SQLMobile sont sélectionnées. Cliquez sur Suivant.

  10. Vous êtes averti que des identificateurs uniques seront ajoutés aux tables. Tous les articles de fusion requièrent une colonne uniqueindentifier. Cliquez sur Suivant.

  11. Dans la page Filtrer les lignes de la table, vous pouvez à présent ajouter des filtres aux données publiées. Dans cette procédure pas à pas, vous ne filtrez pas les données. Cliquez sur Suivant.

  12. Dans la page Agent de capture instantanée, vous pouvez configurer le moment où la capture instantanée est créée et la fréquence d'exécution de l'Agent de capture instantanée. Cliquez sur Suivant pour accepter les paramètres par défaut.

  13. Dans la boîte de dialogue Sécurité de l'agent, cliquez sur Paramètres de sécurité.

    1. Dans la boîte de dialogue Sécurité de l'Agent de capture instantanée, entrez les informations d'ouverture de session pour le compte que vous avez créé lors de la procédure précédente. Le compte du processus est nom_ordinateur\agent_capture (où nom_ordinateur représente le nom de votre ordinateur) et le mot de passe est m0tdep@sse.
    2. Cliquez sur OK pour enregistrer les paramètres.
    3. Cliquez sur Suivant dans la page Sécurité de l'agent.
  14. Dans l'écran Actions de l'Assistant, vous pouvez déterminer à quel moment la publication doit être créée et si vous souhaitez qu'un fichier de script soit créé. Désactivez Créer une capture instantanée immédiatement, puis cliquez sur Suivant.

  15. Dans l'écran Terminer l'Assistant, tapez SQLMobile pour le nom de la publication, puis cliquez sur Terminer.

  16. La publication est créée. Lorsque l'Assistant est terminé, cliquez sur Fermer.

Définition des autorisations

Vous devez accorder des autorisations pour le compte de l'Agent de capture instantanée et pour le compte d'utilisateur anonyme IIS. Vous devez également ajouter le compte d'utilisateur anonyme IIS dans la liste d'accès à la publication.

Définition des autorisations de base de données

  1. Dans , dans l'Explorateur d'objets, développez Sécurité, cliquez avec le bouton droit sur Connexions, puis sélectionnez Nouvelle connexion.

  2. Dans la boîte de dialogue Nouvelle connexion, sélectionnez Authentification Windows, cliquez sur Rechercher, tapez nom_ordinateur\Agent_capture_instantanée dans la zone Entrez le nom de l'objet à sélectionner, où nom_ordinateur représente le nom de l'ordinateur, cliquez sur Vérifier les noms, puis cliquez sur OK.

  3. Dans le volet de navigation, choisissez le volet Mappage de l'utilisateur.

  4. Dans la liste des bases de données, sélectionnez distribution et le rôle db_owner, sélectionnez SQLMobile et le rôle db_owner, puis cliquez sur OK.

  5. Cliquez avec le bouton droit sur Connexions et sélectionnez Nouvelle connexion.

  6. Dans la boîte de dialogue Nouvelle connexion, sélectionnez Authentification Windows, cliquez sur Rechercher, tapez nom_ordinateur\nom_ordinateur_iusr dans la zone Entrez le nom de l'objet à sélectionner, où nom_ordinateur représente le nom de l'ordinateur, cliquez sur Vérifier les noms, puis cliquez sur OK.

  7. Dans le volet de navigation, sélectionnez le volet Mappage de l'utilisateur.

  8. Dans la liste des bases de données, sélectionnez distribution et SQLMobile, puis cliquez sur OK.

Autorisation de l'accès à la publication

  1. Dans l'Explorateur d'objets, développez Réplication, puis Publications, cliquez avec le bouton droit sur la publication [SQLMobile]:SQLMobile, puis cliquez sur Propriétés.

  2. Dans le volet de navigation, sélectionnez Liste d'accès à la publication.

  3. Cliquez sur Ajouter. Dans la boîte de dialogue Ajouter un accès à une publication, le compte IUSR est répertorié. Sélectionnez-le, puis cliquez sur OK.

  4. Assurez-vous que le compte IUSR figure à présent dans la liste d'accès à la publication, puis cliquez sur OK.

Création de la capture instantanée de la publication

Pour pouvoir initialiser un abonnement à la publication SQLMobile, vous devez créer la capture instantanée de la publication.

Créer la capture instantanée de la publication

  1. Dans SQL Server Management Studio, développez le nœud de l'ordinateur (local) dans l'Explorateur d'objets.

  2. Développez le dossier Publications locales, sélectionnez le nom de la publication, cliquez avec le bouton droit sur SQLMobile, puis cliquez sur Afficher l'état de l'Agent de capture instantanée.

  3. Dans la boîte de dialogue Afficher l'état de l'Agent de capture instantanée, cliquez sur Démarrer.

    Assurez-vous de la réussite de l'opération de capture instantanée avant de poursuivre.

Configuration d'IIS et de SQL Server 2005 en vue de la synchronisation Web

À présent que SQL Server a été configuré avec une publication, vous devez rendre cette publication disponible aux clients SQL Server Compact Edition via le réseau. SQL Server Compact Edition se connecte à SQL Server par le biais d'IIS. En particulier, vous devez créer et configurer un répertoire virtuel qui rend l'Agent serveur SQL Server Compact Edition disponible aux clients.

Installation des composants serveur de SQL Server Compact Edition

  1. Dans l'Explorateur Windows, localisez le répertoire suivant :

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

  2. Double-cliquez sur sqlce30setupen.msi pour exécuter le programme d'installation.

  3. Dans le premier écran de l'Assistant Installation, cliquez sur Suivant.

  4. Lisez et acceptez les termes du contrat de licence logiciel Microsoft, puis cliquez sur Suivant.

  5. Dans l'écran Vérification de la configuration du système, assurez-vous que tous les éléments réussissent la vérification. Le dernier élément de la liste est répertorié comme un avertissement si SQL Server 2000 n'est pas installé. Étant donné que vous utilisez SQL Server 2005, cela ne pose aucun problème. Cliquez sur Suivant.

  6. Cliquez sur Suivant dans l'écran suivant, puis sur Installer pour démarrer l'installation.

  7. Cliquez sur Terminer.

Configuration de la publication en vue de la synchronisation Web

  1. Dans SQL Server Management Studio, développez le nœud de l'ordinateur (local) dans l'Explorateur d'objets.

  2. Développez le dossier Publications locales, sélectionnez le nom de la publication, effectuez un clic droit, puis cliquez sur Configurer la synchronisation Web.

  3. Dans le premier écran de l'Assistant, cliquez sur Suivant.

  4. Dans l'écran Type d'Abonné, choisissez SQL Server Compact Edition, puis cliquez sur Suivant.

  5. Dans l'écran Serveur Web, entrez le nom de votre ordinateur dans la zone de texte ordinateur qui exécute IIS, si nécessaire, puis cliquez sur Créer un nouveau répertoire virtuel.

  6. Dans l'arborescence affichée, développez l'ordinateur, Sites Web, puis sélectionnez Site Web par défaut.

  7. Cliquez sur Suivant.

  8. Dans la zone de texte Alias de l'écran Informations sur le répertoire virtuel, tapez SQLMobile, puis cliquez sur Suivant.

    Si une boîte de dialogue d'avertissement s'affiche, cliquez sur Oui.

  9. Dans l'écran Communications sécurisées, sélectionnez Ne pas exiger de canal sécurisé (SSL).

  10. Important   Dans un environnement de production, vous devez activer le chiffrement SSL pour protéger les données échangées via Internet entre l'Abonné et le serveur qui exécute IIS. Dans l'écran Authentification du client, sélectionnez Les clients se connecteront de manière anonyme, puis cliquez sur Suivant.

  11. Dans l'écran Accès anonyme, acceptez les paramètres par défaut en cliquant sur Suivant.

  12. Dans l'écran Accès au partage de fichiers de captures instantanées, entrez \\nom_ordinateur\snapshot, où nom_ordinateur représente le nom de votre ordinateur, puis cliquez sur Suivant.

    Si vous recevez un avertissement indiquant que le partage de fichiers de captures instantanées est vide, cliquez sur Oui.

  13. Cliquez sur Terminer.

  14. Cliquez sur Fermer.

  15. Dans Internet Explorer, entrez l'URL http://localhost/SQLMobile/sqlcesa30.dll?diag dans Adresse, puis cliquez sur OK. Cela établit la connexion au serveur en mode de diagnostic. Vérifiez que le rapport de diagnostic de l'Agent serveur SQL Server Compact Edition indique un succès.

Tâches SQL Server Compact Edition

Avant de développer une application qui utilise SQL Server Compact Edition, il est souvent plus rapide de créer préalablement la base de données et l'abonnement SQL Server Compact Edition. SQL Server Management Studio vous permet de créer et d'utiliser une base de données SQL Server Compact Edition sur l'ordinateur local. Vous pouvez ensuite utiliser cette base de données lorsque vous développez votre application.

Création d'une base de données SQL Server Compact

  1. Dans SQL Server Management Studio, dans l'Explorateur d'objets, cliquez sur Connexion, puis choisissez SQL Server Compact Edition.

  2. Dans le champ Fichier de base de données, choisissez <Nouvelle base de données…>.

  3. Dans la zone de texte de nom du fichier, tapez c:\sqlmobile.sdf, puis cliquez sur OK.

    Si un avertissement s'affiche concernant un mot de passe vide, cliquez sur Oui. La base de données utilisée dans ce didacticiel n'est pas protégée par mot de passe ni chiffrée.

  4. Dans la boîte de dialogue Se connecter à un serveur, cliquez sur Se connecter.

    Un nouveau nœud appelé SQL Server Compact Edition [Poste de travail\...\sqlmobile] est ajouté dans l'Explorateur d'objets.

Création d'un nouvel abonnement

  1. Dans l'Explorateur d'objets, développez le nœud SQL Server CompactEdition, puis Réplication, cliquez avec le bouton droit sur Abonnements, puis choisissez Nouvel abonnement.

  2. Dans le premier écran, cliquez sur Suivant.

  3. Dans l'écran Choisir la publication, choisissez <Rechercher un serveur de publication SQL…> dans la liste déroulante Serveur de publication.

  4. Dans la boîte de dialogue Se connecter au serveur, tapez ou choisissez le nom de l'ordinateur local, puis cliquez sur Se connecter.

  5. Dans l'écran Choisir la publication, dans la liste des publications, développez SQLMobile, sélectionnez la publication SQLMobile, puis cliquez sur Suivant.

  6. Dans l'écran Identifier un abonnement, tapez SQLMobile pour le nom de l'abonnement, puis cliquez sur Suivant.

  7. Dans l'écran Authentification du serveur Web, entrez l'URL du répertoire virtuel que vous avez créé lors de la procédure précédente. Dans cette procédure pas à pas, vous avez créé un répertoire virtuel dont l'URL est http://hôte_local/SQLMobile.

  8. Cliquez sur L'Abonné se connecte de façon anonyme, puis sur Suivant.

  9. Dans l'écran Authentification SQL Server, cliquez sur Suivant pour accepter les paramètres par défaut.

    Dans l'écran final, l'Assistant affiche un exemple de code que vous pouvez utiliser lorsque vous créez un abonnement dans l'application. Sélectionnez l'exemple de code (Visual Basic ou C#, selon le langage que vous utiliserez pour créer l'application) et copiez-le. Pour ce faire, sélectionnez le code et appuyez sur Ctrl+C. Démarrez le Bloc-notes ou un autre éditeur de texte et collez-y l'exemple de code. Vous utiliserez ce code lors de la création de l'application dans les procédures suivantes.

  10. Après avoir copié l'exemple de code, cliquez sur Terminer.

  11. Cliquez sur Fermer.

Création d'une application

Création d'un projet pour appareil de type « smart device »

  1. Ouvrez Visual Studio 2005.

  2. Dans le menu Fichier, sélectionnez NouveauProjet.

  3. Dans la boîte de dialogue Nouveau projet, développez dans l'arborescence Types de projets le langage de développement, puis sélectionnez Smart Device.

  4. Dans la liste des modèles, sélectionnez le type de projet que vous souhaitez créer. Pour cette procédure pas à pas, sélectionnez Application Pocket PC 2003.

  5. Indiquez un nom et un emplacement pour le projet, puis cliquez sur OK. Dans cette procédure pas à pas, appelez le projet SQLMobile.

    Visual Studio crée un nouveau projet et affiche Form1 comme cela apparaîtra sur un appareil de type « smart device ».

Ajouter des références

  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur Références, puis choisissez Ajouter une référence.

    Remarque :
    Si le dossier Références ne figure pas dans la liste de l'Explorateur de solutions, cliquez sur Afficher tous les fichiers dans la partie supérieure de l'Explorateur de solutions.
  2. Dans la liste des assemblys .NET, sélectionnez System.Data.SqlServerCe, puis cliquez sur OK. Si System.Data.SqlServerCe ne figure pas dans la liste, procédez comme suit :

    1. Cliquez sur l'onglet Parcourir.
    2. Recherchez le répertoire suivant :
      C:\Program Files\Microsoft Visual Studio 8\Common7\IDE
    3. Sélectionnez System.Data.SqlServerCe.dll, puis cliquez sur OK.

    La liste des références de l'Explorateur de solutions comprend à présent System.Data.SqlServerCe, et votre projet peut utiliser cet assembly.

  3. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur Form1.cs ou Form1.vb, puis choisissez Afficher le code.

  4. En haut du code pour le formulaire, ajoutez une directive d'utilisation de l'espace de noms System.Data.SqlServerCe :

    [C#]

    using System.Data.SqlServerCe;
    

    [VB]

    Imports System.Data.SqlServerCe
    

Ajout d'une connexion de données

  1. Dans la fenêtre principale, basculez vers la vue Design (par défaut) pour Form1.

  2. Dans le menu Données, cliquez sur Ajouter une nouvelle source de données.

    Remarque   Si la commande Ajouter une nouvelle source de données n'est pas affichée, sélectionnez la vue Design pour Form1, puis examinez à nouveau le menu Données.

  3. Dans la fenêtre Choisir un type de source de données, sélectionnez Base de données, puis cliquez sur Suivant.

  4. Dans la boîte de dialogue Choisir votre connexion de données, cliquez sur Nouvelle connexion.

  5. Si une boîte de dialogue Ajouter une connexion s'affiche, cliquez sur Modifier.

  6. Dans la boîte de dialogue Choisir la source de données, sous Source de données, sélectionnez Microsoft SQL Server Compact Edition (si une connexion existait, cette boîte de dialogue pourrait être appelée Modifier la source de données). Dans la liste des fournisseurs de données, sélectionnez Fournisseurs de données .NET Compact Framework pour SQL Server Compact Edition. Cliquez sur Continuer ou sur OK.

  7. Dans la boîte de dialogue Ajouter une connexion, sous Source de données, sélectionnez Poste de travail.

    Dans la section Propriétés de connexion, sous Base de données, cliquez sur Parcourir, puis recherchez la base de données que vous avez créée dans une procédure précédente. Si vous avez suivi les étapes, la base de données se trouve à l'emplacement c:\sqlmobile.sdf.

  8. Cliquez sur Tester la connexion, puis sur OK pour créer la connexion de données.

  9. Dans la boîte de dialogue Choisir votre connexion de données, cliquez sur Suivant.

  10. Si une boîte de dialogue s'affiche pour vous demander de copier votre fichier de données dans le projet en cours, cliquez sur Oui.

  11. Dans la fenêtre Enregistrer la chaîne de connexion, cliquez sur Suivant.

  12. Dans la fenêtre Choisir vos objets de base de données, sélectionnez Tables, puis cliquez sur Terminer.

Sélection des données à afficher

  1. Dans le menu Données, cliquez sur Afficher les sources de données.

  2. Faites glisser la table MembershipData de la fenêtre Sources de données jusqu'à la fenêtre Form1 Design. Une grille de données est créée sur Form1, où les noms de colonnes sont indiqués automatiquement.

  3. Cliquez avec le bouton droit sur la grille de données, puis cliquez sur Propriétés.

  4. Dans la fenêtre Propriétés, changez la valeur Dock en Top. Vous pouvez changer cette valeur en cliquant sur la barre supérieure de la représentation graphique qui s'affiche, ou en tapant Top dans le champ. La grille de données est alors déplacée et redimensionnée de sorte à remplir la section supérieure de Form1.

  5. Dans le coin supérieur droit de la grille de données, cliquez sur la petite flèche. Dans le menu qui s'affiche, choisissez Générer les formulaires de données.

  6. Faites glisser la table FlightData de la fenêtre Sources de données jusqu'à la fenêtre Form1 Design. Une grille de données est créée sur Form1, où les noms de colonnes sont indiqués automatiquement.

  7. Vous pouvez utiliser les paramètres des Propriétés de cette grille de données pour définir la propriété Dock sur Bottom.

Ajout de code

Dans la page de codes de l'application, vous ajouterez une variable de type chaîne contenant le chemin d'accès et le nom du fichier de base de données, du code permettant de supprimer le fichier de base de données s'il existe déjà, et du code permettant d'établir une connexion à la publication SQL Server, de synchroniser les données et de créer une nouvelle base de données locale qui contient les données publiées.

Ajout du code

  1. À partir de l'Explorateur de solutions, cliquez avec le bouton droit sur Form1 et sélectionnez Afficher le code.

  2. Dans la page de codes, accédez à la définition de classe pour Form1. Ajoutez une variable de type chaîne et attribuez-lui le chemin d'accès et le nom du fichier .sdf. La source de données créée par Visual Studio dans les étapes précédentes s'attend à ce que le fichier de base de données se trouve dans le dossier \Program Files\ApplicationName, où ApplicationName est le nom de l'application. Par exemple, si vous avez appelé votre nouveau projet SQLMobile, votre variable de type chaîne doit être définie à "\Program Files\SQLMobile\sqlmobile.sdf".

  3. Les premières lignes de votre définition de classe doivent ressembler au code suivant :

    [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. Créez une nouvelle méthode qui supprimera le fichier de base de données s'il existe déjà. Cela garantit que l'application charge les données les plus récentes chaque fois qu'elle s'exécute. Cette méthode doit s'appeler DeleteDB. Le code doit ressembler au code suivant :

    [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. Créez une nouvelle méthode appelée Sync qui effectue la synchronisation. Pour ce faire, utilisez le code que vous avez copié à partir de l'Assistant Nouvelle publication à une étape précédente. Lorsque vous collez le code, vous devez y apporter les deux modifications suivantes :

    1. Changez la valeur du paramètre SubscriberConnectionString de sorte qu'il pointe vers le chemin d'accès et le nom de fichier corrects, tels que spécifiés dans la variable du nom de fichier.

    2. Changez la valeur du paramètre AddOption de ExistingDatabase en CreateDatabase.
      Une fois terminé, la méthode Sync doit ressembler à ce qui suit :
      [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. Enfin, ajoutez du code au début du gestionnaire d'événements Form1_Load, qui appelle les deux méthodes que vous avez créées récemment. Le gestionnaire d'événements Form1_Load doit ressembler au code suivant :

    [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
    

Déploiement et test de l'application

Déploiement de l'application

  1. Dans le menu Débogage, choisissez Démarrer le débogage.

  2. Si la boîte de dialogue Déployer s'affiche, choisissez Émulateur Pocket PC 2003 SE, puis cliquez sur Déployer.

  3. L'émulateur s'ouvre dans une nouvelle fenêtre. La première fois que vous déployez l'application vers l'émulateur, le .NET Compact Framework et SQL Server Compact Edition sont installés. Cela peut prendre plusieurs minutes. Lorsqu'ils sont installés, votre application est installée et s'exécute.

    L'application se charge et affiche les deux grilles de données. Lorsque vous cliquez sur une valeur dans la grille de données MembershipData, les données de la grille de données FlightData sont mises à jour automatiquement.

  4. Fermez l'application. Dans Visual Studio, cliquez sur Arrêter le débogage dans le menu Débogage.

Voir aussi

Concepts

Protection des bases de données (SQL Server Compact Edition)

Aide et information

Assistance sur SQL Server Compact Edition