Creazione di un'applicazione per dispositivi portatili con SQL Server Compact Edition

In questo scenario verrà illustrata la creazione in Microsoft Visual Studio 2005 di un'applicazione che utilizza Microsoft SQL Server 2005 Compact Edition. Il database di SQL Server Compact Edition sarà Sottoscrittore di una pubblicazione di SQL Server 2005 e utilizzerà la replica di tipo merge per il download di informazioni da un database di SQL Server 2005 in un database di SQL Server Compact Edition.

Nello scenario verranno eseguite le operazioni seguenti:

  1. Configurazione di una pubblicazione di SQL Server 2005
  2. Configurazione di Internet Information Services (IIS) per la replica
  3. Creazione di una sottoscrizione di SQL Server Compact Edition
  4. Creazione di un'applicazione
  5. Distribuzione dell'applicazione e verifica della sottoscrizione

Prerequisiti

Per eseguire passo passo lo scenario, è necessario disporre di:

  • Computer con Windows XP e IIS.
  • SQL Server 2005 Service Pack 2 (SP2) o una versione successiva, installata nello stesso computer in cui si trova Visual Studio.

Attività relative a SQL Server 2005

Prima di creare l'applicazione, è necessario configurare una pubblicazione in SQL Server 2005. I passaggi seguenti consentono di creare un semplice database e quindi di pubblicarne i dati. Per la creazione del database verrà utilizzato un file script predefinito e la pubblicazione verrà creata tramite la Creazione guidata nuova pubblicazione.

Creazione di un database e popolamento dei dati

  1. Aprire SQL Server Management Studio.

  2. Quando viene richiesta la connessione a un server, specificare (locale) per Nome server e quindi fare clic su Connetti.

  3. Aprire una nuova finestra Query. Creare un database di SQL Server Compact Edition e popolare il database con i dati.

    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. Fare clic su Esegui per eseguire lo script e creare il database. Lo script verrà eseguito e verrà creato un nuovo database denominato SQLMobile.

    [!NOTA] Per eseguire la query, è inoltre possibile premere F5 oppure scegliere Esegui dal menu Query.

  5. Per verificare che il database è stato creato, in Esplora oggetti espandere (locale), Database e quindi SQLMobile. Se il database SQLMobile non è incluso nell'elenco, aggiornare l'elenco dei database facendo clic con il pulsante destro del mouse su Database e scegliendo Aggiorna.

Preparare il server per la pubblicazione dei dati

Prima di creare una pubblicazione, è necessario preparare il server per la pubblicazione creando un account utente agente snapshot e una cartella condivisa per l'archiviazione dei file di snapshot. Dopo la creazione, la cartella snapshot verrà utilizzata per tutte le pubblicazioni sul server. Se sono già state create pubblicazioni su questo server, è possibile ignorare questi passaggi.

Creare l'account utente snapshot

  1. Aprire Gestione computer da Strumenti di amministrazione nel Pannello di controllo.

  2. In Gestione computer espandere Utilità di sistema, espandere Utenti e gruppi locali, fare clic con il pulsante destro del mouse su Users e quindi scegliere Nuovo utente.

  3. Immettere le informazioni seguenti nella finestra di dialogo Nuovo utente e quindi fare clic su Crea:

Opzione Valore

Nome utente

agente_snapshot

Password

p@ssw0rd

Conferma password

p@ssw0rd

Cambiamento obbligatorio password all'accesso successivo

Non selezionata

Nessuna scadenza password

Selezionata

Importante:
È consigliabile utilizzare queste impostazioni solo per l'esecuzione di test. In un ambiente di produzione assicurarsi che le impostazioni dell'account utente siano conformi ai requisiti di protezione della rete. Per l'agente snapshot verrà spesso utilizzato un account utente di dominio invece di un account utente locale.

Creare la cartella snapshot

  1. In Esplora risorse, creare una nuova cartella denominata snapshot. Per questo scenario, è possibile creare la cartella nella directory principale dell'unità C, ovvero c:\snapshot. Fare clic con il pulsante destro del mouse sulla cartella snapshot e scegliere Condivisione e protezione.

  2. Nella scheda Condivisione selezionare Condividi cartella e quindi fare clic su Autorizzazioni.

  3. In Autorizzazioni per snapshot fare clic su Aggiungi.

  4. In Immettere il nome dell'oggetto da selezionare digitare computername\snapshot_agent, dove computername indica il nome del computer locale, fare clic su Controlla nomi e quindi fare clic su OK.

  5. In Autorizzazioni per snapshot selezionare agente_snapshot, assegnare le autorizzazioni di condivisione Modifica e Lettura e quindi fare clic su OK.

  6. Selezionare la scheda Protezione.

  7. Fare clic su Aggiungi.

  8. In Immettere il nome dell'oggetto da selezionare digitare computername\snapshot_agent, dove computername indica il nome del computer locale, fare clic su Controlla nomi e quindi fare clic su OK.

  9. Selezionare snapshot_agent e aggiungere l'autorizzazione Scrittura all'elenco di autorizzazioni abilitate. All'account agente_snapshot verranno concesse le autorizzazioni seguenti:

    • Lettura ed esecuzione
    • Visualizzazione contenuto cartella
    • Lettura
    • Scrittura
  10. Fare clic su OK per chiudere la finestra Proprietà snapshot.

  11. Chiudere Esplora risorse.

Creare una pubblicazione

  1. In Esplora oggetti di SQL Server Management Studio espandere il nodo (locale), se non è già espanso, e quindi espandere Replica.

  2. Fare clic con il pulsante destro del mouse sulla cartella Pubblicazionilocali e scegliere Nuova pubblicazione.

  3. Nella schermata iniziale della Creazione guidata nuova pubblicazione fare clic su Avanti.

  4. Se nel computer in uso non è mai stata creata una pubblicazione, verrà richiesta la configurazione di un server di distribuzione. Selezionare la prima opzione per utilizzare il computer locale stesso come server di distribuzione e quindi fare clic su Avanti.

  5. Se nel computer in uso non è mai stata creata una pubblicazione, verrà richiesto di specificare una cartella snapshot. Immettere il percorso di condivisione della cartella snapshot creata nella procedura precedente. Digitare il percorso della condivisione nel formato \\nomeserver\condivisione**anziché utilizzare il percorso locale. In questo scenario è consigliabile immettere \\computer\snapshot, dove computer indica il nome del computer in uso, e quindi fare clic su Avanti.

  6. Nell'elenco di database selezionare SQLMobile e quindi fare clic su Avanti.

  7. Nell'elenco di tipi di pubblicazione selezionare Pubblicazione di tipo merge e quindi fare clic su Avanti.

  8. Nella pagina Tipi diSottoscrittore selezionare per attivare il supporto per i Sottoscrittori di SQL Server Compact Edition e quindi fare clic su Avanti.

  9. Nell'elenco di oggetti da pubblicare selezionare la casella di controllo Tabelle. Se si espande Tabelle, si noterà che entrambe le tabelle del database SQLMobile sono selezionate. Fare clic su Avanti.

  10. Verrà visualizzato un avviso che informerà dell'aggiunta di identificatori univoci alle tabelle. Tutti gli articoli di merge devono infatti contenere una colonna uniqueindentifier. Fare clic su Avanti.

  11. Nella pagina Filtro righe tabella è ora possibile aggiungere filtri per i dati pubblicati. In questo scenario tuttavia i dati non verranno filtrati. Fare clic su Avanti.

  12. Nella pagina Agente snapshot è possibile determinare quando verrà creato lo snapshot e con quale frequenza verrà eseguito l'agente snapshot. Fare clic su Avanti per accettare le impostazioni predefinite.

  13. Nella finestra di dialogo Protezione agente fare clic su Impostazioni di protezione.

    1. Nella finestra di dialogo Protezione agente snapshot immettere le informazioni di accesso per l'account creato nella procedura precedente. L'account del processo è nome_computer\agente_snapshot, dove nome_computer indica il nome del computer in uso, e la password è p@ssw0rd.
    2. Fare clic su OK per salvare le impostazioni.
    3. Fare clic su Avanti nella pagina Protezione agente.
  14. La schermata Azioni procedura guidata consente di determinare quando viene creata la pubblicazione e di stabilire se si desidera o meno la creazione di un file script. Deselezionare Crea snapshot immediatamente e quindi fare clic su Avanti.

  15. Nella schermata Completamento procedura guidata immettere SQLMobile come nome della pubblicazione e quindi fare clic su Fine.

  16. La pubblicazione verrà creata. Al termine della procedura guidata, fare clic su Chiudi.

Impostazione delle autorizzazioni

È necessario concedere le autorizzazioni per l'account dell'agente snapshot e per l'account utente anonimo di IIS. È inoltre necessario aggiungere l'account utente anonimo di IIS all'elenco di accesso alla pubblicazione.

Impostazione delle autorizzazioni del database

  1. In Esplora oggetti di espandere Protezione, fare clic con il pulsante destro del mouse su Account di accesso e scegliere Nuovo account di accesso.

  2. Nella finestra di dialogo Nuovo account di accesso selezionare Autenticazione di Windows, fare clic su Cerca, digitare computername\snapshot_agent nella casella Immettere il nome dell'oggetto da selezionare, dove computername è il nome del computer in uso, fare clic su Controlla nomi e quindi su OK.,

  3. Nel riquadro di spostamento scegliere il riquadro Mapping utenti.

  4. Nell'elenco dei database selezionare Distribuzione e il ruolo db_owner, selezionare SQLMobile e il ruolo db_owner e quindi fare clic su OK.

  5. Fare clic con il pulsante destro del mouse su Account di accesso e scegliere Nuovo account di accesso.

  6. Nella finestra di dialogo Nuovo account di accesso selezionare Autenticazione di Windows, fare clic su Cerca, digitare computername\iusr_computername nella casella Immettere il nome dell'oggetto da selezionare, dove computername è il nome del computer in uso, fare clic su Controlla nomi e quindi su OK.,

  7. Nel riquadro di spostamento scegliere il riquadro Mapping utenti.

  8. Nell'elenco di database selezionare Distribuzione e SQLMobile e quindi fare clic su OK.

Concessione dell'accesso alla pubblicazione

  1. In Esplora oggetti espandere Replica, espandere Pubblicazioni, fare clic con il pulsante destro del mouse sulla pubblicazione [SQLMobile]:SQLMobile e quindi scegliere Proprietà.

  2. Nel riquadro di spostamento selezionare Elenco accesso pubblicazione.

  3. Fare clic su Aggiungi. L'account IUSR è incluso nell'elenco visualizzato nella finestra di dialogo Aggiungi accesso alla pubblicazione. Selezionare tale account e quindi fare clic su OK.

  4. Assicurarsi che l'account IUSR sia ora incluso nell'elenco di accesso alla pubblicazione e quindi scegliere OK.

Creazione dello snapshot di pubblicazione

Per poter inizializzare una sottoscrizione alla pubblicazione SQLMobile, è necessario creare lo snapshot di pubblicazione.

Creazione dello snapshot di pubblicazione

  1. In SQL Server Management Studio espandere il nodo del computer (locale) in Esplora oggetti.

  2. Espandere la cartella Pubblicazioni locali, selezionare il nome della pubblicazione, fare clic con il pulsante destro del mouse su [SQLMobile] e quindi scegliere Visualizza stato agente snapshot.

  3. Nella finestra di dialogo Visualizza stato agente snapshot fare clic su Avvia.

    Verificare che il processo snapshot abbia avuto esito positivo prima di continuare.

Configurazione di IIS e SQL Server 2005 per la sincronizzazione tramite il Web

Dopo la configurazione di SQL Server con una pubblicazione, è necessario rendere disponibile la pubblicazione in rete ai client SQL Server Compact Edition. La connessione di SQL Server Compact Edition a SQL Server viene eseguita tramite IIS. In particolare, si crea e si configura una directory virtuale che rende Agente server di SQL Server Compact Edition disponibile ai client.

Installare i componenti server di SQL Server Compact Edition

  1. In Esplora risorse individuare la directory seguente:

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

  2. Fare doppio clic sul file sqlce30setupen.msi per eseguire il programma di installazione.

  3. Nella schermata iniziale dell'installazione guidata fare clic su Avanti.

  4. Leggere e accettare i termini del Contratto di Licenza Microsoft con l'utente finale e quindi fare clic su Avanti.

  5. Nella schermata Controllo configurazione sistema assicurarsi che tutti gli elementi superino il controllo. L'ultimo elemento dell'elenco verrà visualizzato come avviso, nel caso in cui SQL Server 2000 non sia installato nel computer in uso. Poiché si utilizza SQL Server 2005, tale avviso non rappresenta alcun problema. Fare clic su Avanti.

  6. Fare clic su Avanti nella schermata successiva e quindi su Installa per avviare l'installazione.

  7. Fare clic su Fine.

Configurare la pubblicazione per la sincronizzazione tramite il Web

  1. In SQL Server Management Studio espandere il nodo del computer (locale) in Esplora oggetti.

  2. Espandere la cartella Pubblicazioni locali, selezionare il nome della pubblicazione, fare clic con il pulsante destro del mouse e quindi scegliere Configura sincronizzazione Web.

  3. Nella schermata iniziale della procedura guidata fare clic su Avanti.

  4. Nella schermata Tipo di Sottoscrittore selezionare SQL Server Compact Edition e quindi fare clic su Avanti.

  5. Nella schermata Server Web immettere il nome del computer in uso nella casella di testo Immettere il nome del computer che esegue IIS, se tale informazione non è ancora stata specificata, e quindi fare clic su Crea una nuova directory virtuale.

  6. Espandere il computer nella struttura visualizzata, espandere Siti Web e quindi selezionare Sito Web predefinito.

  7. Fare clic su Avanti.

  8. Nella casella di testo Alias della schermata Informazioni directory virtuale immettere SQLMobile e quindi fare clic su Avanti.

    Se viene visualizzato un avviso, fare clic su .

  9. Nella schermata Comunicazioni protette selezionare Non richiedere un canale protetto (SSL).

  10. Importante   In un ambiente di produzione è consigliabile abilitare la crittografia SSL per proteggere i dati scambiati tramite Internet tra il Sottoscrittore e il server che esegue IIS. Nella schermata Autenticazione client selezionare Connessione anonima dei client e quindi fare clic su Avanti.

  11. Nella schermata Accesso anonimo fare clic su Avanti per accettare le impostazioni predefinite.

  12. Nella schermata Accesso alla condivisione snapshot immettere \\computer\snapshot, dove computer rappresenta il nome del computer in uso, e quindi fare clic su Avanti.

    Se viene segnalato tramite un avviso che la condivisione snapshot è vuota, fare clic su .

  13. Fare clic su Fine.

  14. Fare clic su Chiudi.

  15. In Internet Explorer digitare l'URL https://localhost/SQLMobile/sqlcesa30.dll?diag in Indirizzo e quindi fare clic su Vai. In questo modo verrà eseguita la connessione in modalità diagnostica. Verificare che il report di diagnostica dell'Agente server di SQL Server Compact Edition venga visualizzato correttamente.

Attività di SQL Server Compact Edition

Prima di sviluppare un'applicazione che utilizzerà SQL Server Compact Edition, risulta spesso utile creare in precedenza il database di SQL Server Compact Edition e la sottoscrizione. SQL Server Management Studio consente di creare e utilizzare un database di SQL Server Compact Edition nel computer locale. È quindi possibile utilizzare tale database quando si sviluppa l'applicazione.

Creazione di un nuovo database di SQL Server Compact Edition

  1. In Esplora oggetti di SQL Server Management Studio fare clic su Connetti e quindi scegliere SQL Server Compact Edition.

  2. Nel campo File di database selezionare <Nuovo database>.

  3. Nella casella di testo del nome file digitare c:\sqlmobile.sdf e quindi fare clic su OK.

    Se viene visualizzato un avviso relativo a una password vuota, fare clic su . Il database incluso in questa esercitazione non è protetto con password né crittografato.

  4. Nella finestra di dialogo Connetti al server fare clic su Connetti.

    In Esplora oggetti verrà aggiunto un nuovo nodo denominato SQL Server Compact Edition [Risorse del computer\...\sqlmobile].

Creare una nuova sottoscrizione

  1. In Esplora oggetti espandere il nodo SQL Server CompactEdition, espandere Replica, fare clic con il pulsante destro del mouse su Sottoscrizioni e quindi scegliere Nuova sottoscrizione.

  2. Nella schermata iniziale fare clic su Avanti.

  3. Nella schermata Selezione pubblicazione selezionare <Trova server di pubblicazione SQL Server> nella casella di riepilogo a discesa Server di pubblicazione.

  4. Nella finestra di dialogo Connetti al server digitare o selezionare il nome del computer locale e quindi fare clic su Connetti.

  5. Nell'elenco di pubblicazioni disponibile nella schermata Selezione pubblicazione espandere SQLMobile, selezionare la pubblicazione SQLMobile e quindi fare clic su Avanti.

  6. Nella schermata Identificazione sottoscrizione immettere SQLMobile come nome della sottoscrizione e quindi fare clic su Avanti.

  7. Nella schermata Autenticazione server Web immettere l'URL della directory virtuale creata nella procedura precedente. In questo scenario è stata creata una directory virtuale con URL https://localhost/SQLMobile.

  8. Fare clic su Connessione anonima del Sottoscrittore e quindi su Avanti.

  9. Nella schermata relativa all'autenticazione di SQL Server fare clic su Avanti per accettare le impostazioni predefinite.

    Nella schermata finale della procedura guidata viene visualizzato codice di esempio da utilizzare quando si crea una sottoscrizione nell'applicazione. Selezionare il codice di esempio, in Visual Basic o C# in base al linguaggio utilizzato per la creazione dell'applicazione, e copiarlo selezionandolo e premendo CTRL+C. Avviare Blocco note o un altro editor di testo e incollarvi il codice di esempio. Il codice verrà utilizzato durante la creazione dell'applicazione nelle procedure seguenti.

  10. Dopo avere copiato il codice di esempio, fare clic su Fine.

  11. Fare clic su Chiudi.

Creazione di un'applicazione

Creare un nuovo progetto Smart Device

  1. Aprire Visual Studio 2005.

  2. Scegliere Nuovo dal menu File e quindi Progetto.

  3. Nella finestra di dialogo Nuovo progetto espandere nella struttura Tipi progetto il linguaggio di sviluppo desiderato e quindi selezionare Smart Device.

  4. Selezionare dall'elenco di modelli il tipo di progetto da creare. Per questo scenario selezionare Pocket PC 2003.

  5. Specificare un nome e un percorso per il progetto e quindi fare clic su OK. Per questo scenario assegnare al progetto il nome SQLMobile.

    Il nuovo progetto verrà creato in Visual Studio e Form1 verrà visualizzato con l'aspetto che assumerà in uno smart device.

Aggiunta di riferimenti

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse su Riferimenti e scegliere Aggiungi riferimento.

    [!NOTA] Se la cartella Riferimenti non è disponibile in Esplora soluzioni, fare clic su Mostra tutti i file nella parte superiore della finestra di Esplora soluzioni.

  2. Nell'elenco di assembly .NET selezionare System.Data.SqlServerCe e quindi fare clic su OK. Se System.Data.SqlServerCe non è disponibile nell'elenco, eseguire la procedura seguente:

    1. Selezionare la scheda Sfoglia.
    2. Individuare la directory seguente:
      C:\Programmi\Microsoft Visual Studio 8\Common7\IDE
    3. Selezionare System.Data.SqlServerCe.dll e quindi scegliere OK.

    L'elenco di riferimenti in Esplora soluzioni include ora System.Data.SqlServerCe ed è possibile utilizzare tale assembly nel progetto.

  3. In Esplora soluzioni fare clic con il pulsante destro del mouse su Form1.cs o Form1.vb e scegliere Visualizza codice.

  4. All'inizio del codice del form aggiungere una direttiva per l'utilizzo dello spazio dei nomi System.Data.SqlServerCe:

    [C#]

    using System.Data.SqlServerCe;
    

    [VB]

    Imports System.Data.SqlServerCe
    

Aggiungere una connessione dati

  1. Nella finestra principale tornare alla visualizzazione predefinita Struttura per Form1.

  2. Scegliere Aggiungi nuova origine dei dati dal menu Dati.

    Nota   Se il comando Aggiungi nuova origine dei dati non è presente, selezionare la visualizzazione Struttura per Form1 e quindi visualizzare nuovamente il menu Dati.

  3. Nella finestra Seleziona un tipo di origine dati selezionare Database e quindi fare clic su Avanti.

  4. Nella finestra di dialogo Seleziona connessione dati fare clic su Nuova connessione.

  5. Se viene visualizzata una finestra di dialogo Aggiungi connessione fare clic su Cambia.

  6. Nella finestra di dialogo Seleziona origine dati in Origine dati selezionare Microsoft SQL Server Compact Edition. Se è già presente una connessione, il nome di questa finestra di dialogo potrebbe essere Modifica origine dati. Nell'elenco di provider di dati selezionare .NET Framework Data Provider for SQL Server Compact Edition. Fare clic su Continua o su OK.

  7. Nella finestra di dialogo Aggiungi connessione, in Origine dati, selezionare Risorse del computer.

    Nella sezione Proprietà connessione in Database, fare clic su Sfoglia e quindi passare al database creato nella procedura precedente. Se sono stati seguiti i passaggi illustrati, il percorso del database è c:\sqlmobile.sdf.

  8. Fare clic su Verifica connessione e quindi su OK per creare la nuova connessione dati.

  9. Nella finestra di dialogo Seleziona connessione dati fare clic su Avanti.

  10. Se viene visualizzata una finestra di dialogo in cui viene richiesto di copiare il file dei dati nel progetto corrente, fare clic su .

  11. Nella finestra Salva stringa di connessione fare clic su Avanti.

  12. Nella finestra Seleziona oggetti di database selezionare Tabelle e quindi fare clic su Fine.

Scegliere i dati da visualizzare

  1. Scegliere Mostra origini dati dal menu Dati.

  2. Trascinare la tabella MembershipData dalla finestra Origini dati alla finestra Form1 Design. In Form1 verrà creata una griglia dei dati con nomi di colonne predefiniti.

  3. Fare clic con il pulsante destro del mouse sulla griglia dei dati e scegliere Proprietà.

  4. Nella finestra Proprietà modificare il valore Ancoraggio in In alto. A tale scopo, fare clic sulla barra superiore della rappresentazione grafica visualizzata oppure immettere In alto nel campo relativo al valore. La griglia dei dati verrà spostata e ridimensionata, in modo da riempire la sezione superiore di Form1.

  5. Fare clic sulla piccola freccia nell'angolo superiore destro della griglia dei dati, quindi scegliere Genera form dati dal menu visualizzato.

  6. Trascinare la tabella FlightData dalla finestra Origini dati alla finestra Form1 Design. In Form1 verrà creata una griglia dei dati con nomi di colonne predefiniti.

  7. È possibile utilizzare le impostazioni Proprietà di tale griglia dei dati per impostare la proprietà Ancoraggio su In basso.

Aggiunta di codice

Nella pagina del codice dell'applicazione è necessario aggiungere una variabile stringa contenente il nome e il percorso del file del database, codice per l'eliminazione del file del database se quest'ultimo esiste già e codice per stabilire una connessione alla pubblicazione di SQL Server, sincronizzare i dati e creare un nuovo database locale con tali dati.

Aggiunta di codice

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse su Form1 e scegliere Visualizza codice.

  2. Nella pagina del codice individuare la definizione della classe per Form1. Aggiungere una variabile stringa e assegnarla al percorso e nome di file del file con estensione sdf. Per l'origine dei dati creata da Visual Studio nei passaggi precedenti il file del database è contenuto nella cartella \Programmi\ApplicationName, dove ApplicationName è il nome dell'applicazione. Se ad esempio il nome del nuovo progetto è SQLMobile, la variabile stringa deve essere impostata su "\Program Files\SQLMobile\sqlmobile.sdf".

  3. Le prime righe della definizione di classe devono essere simili al codice seguente:

    [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. Creare un nuovo metodo per l'eliminazione del file del database, se quest'ultimo esiste già. In questo modo l'applicazione caricherà sempre i dati più recenti ogni volta che viene eseguita. Il metodo deve essere denominato DeleteDB. Il codice deve essere simile al seguente:

    [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. Creare un nuovo metodo denominato Sync per eseguire la sincronizzazione. A tale scopo, utilizzare il codice copiato dalla Creazione guidata nuova pubblicazione in uno dei passaggi precedenti. Quando si incolla il codice, è necessario apportare due modifiche:

    1. Modificare il valore SubscriberConnectionString in modo che punti al percorso e al nome di file corretti, come specificato nella variabile relativa al nome del file.

    2. Modificare il valore AddOption da ExistingDatabase a CreateDatabase.
      Al termine, l'aspetto del metodo Sync dovrebbe essere analogo al seguente:
      [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. Aggiungere infine codice all'inizio del gestore dell'evento Form1_Load che chiama i due metodi appena creati. Il gestore dell'evento Form1_Load deve essere simile al seguente:

    [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
    

Distribuire e verificare l'applicazione

Distribuire l'applicazione

  1. Scegliere Avvia debug dal menu Debug.

  2. Se viene visualizzata la finestra di dialogo Distribuisci selezionare Pocket PC 2003 SE Emulator e quindi fare clic su Distribuisci.

  3. L'emulatore verrà aperto in una nuova finestra. Alla prima distribuzione dell'applicazione nell'emulatore vengono installati .NET Compact Framework e SQL Server Compact Edition. L'operazione potrebbe richiedere alcuni minuti. Al termine dell'installazione, l'applicazione viene installata ed eseguita.

    L'applicazione viene quindi caricata e vengono visualizzate le due griglie dei dati. Quando si fa clic su un valore nella griglia dei dati MembershipData, i dati della griglia FlightData vengono aggiornati automaticamente.

  4. Chiudere l'applicazione e scegliere Termina debug dal menu Debug in Visual Studio.

Vedere anche

Concetti

Protezione dei database (SQL Server Compact Edition)

Guida in linea e informazioni

Assistenza su SQL Server Compact Edition