Crear una aplicación móvil con SQL Server Compact Edition

En esta visita guiada aprenderá a crear una aplicación en Microsoft Visual Studio 2005 que utilice Microsoft SQL Server 2005 Compact Edition. La base de datos de SQL Server Compact Edition será un suscriptor a una publicación de SQL Server 2005 y utilizará la réplica de mezcla para descargar información desde una base de datos de SQL Server 2005 a la base de datos de SQL Server Compact Edition.

En esta visita guiada se seguirán estos pasos:

  1. Configurar una publicación de SQL Server 2005.
  2. Configurar Servicios de Internet Information Server (IIS) para la réplica.
  3. Crear una suscripción de SQL Server Compact Edition.
  4. Crear una aplicación.
  5. Implementar la aplicación y probar la suscripción.

Requisitos previos

Para realizar esta visita guiada tal y como está redactada, debe tener lo siguiente:

  • Un equipo con Windows XP e IIS instalados.
  • SQL Server 2005 Service Pack 2 (SP2) o una versión posterior instalada en el mismo equipo que Visual Studio.

Tareas de SQL Server 2005

Antes de crear la aplicación, debe configurar una publicación en SQL Server 2005. En los pasos siguientes, creará una base de datos de ejemplo y, a continuación, publicará los datos de dicha base de datos. Creará la base de datos utilizando un archivo de secuencia de comandos integrado y, a continuación, creará la publicación mediante el Asistente para nueva publicación.

Crear una base de datos y llenarla con datos

  1. Abra SQL Server Management Studio.

  2. Cuando se le solicite la conexión a un servidor, especifique (local) para Nombre del servidor y, a continuación, haga clic en Conectar.

  3. Abra una ventana de consulta nueva. Cree una base de datos de SQL Server Compact Edition y llénela con datos.

    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. Haga clic en Ejecutar (!) para ejecutar el archivo de comandos y crear la base de datos. La secuencia de comandos se ejecuta y crea una nueva base de datos con el nombre SQLMobile.

    [!NOTA] También puede presionar F5 o elegir Ejecutar en el menú Consulta para ejecutar la consulta.

  5. Para confirmar que se ha creado la base de datos, en el Explorador de objetos, expanda (local), Bases de datos y SQLMobile. Si la base de datos SQLMobile no aparece, actualice la lista de bases de datos haciendo clic con el botón secundario en Bases de datos y seleccionando Actualizar.

Preparar el servidor para la publicación de datos

Antes de crear una publicación, debe preparar el servidor para la publicación mediante la creación de una cuenta de usuario del agente de instantáneas y la creación de una carpeta compartida en la que se almacenarán los archivos de instantáneas. Una vez creada la carpeta de instantáneas, se utiliza para todas las publicaciones en el servidor. Si ha creado publicaciones anteriormente en este servidor, puede omitir estos pasos.

Crear la cuenta de usuario de instantáneas

  1. Abra Administración del equipo en Herramientas administrativas en el Panel de control.

  2. En Administración del equipo, despliegue Herramientas del sistema, despliegue Usuarios locales y grupos, haga clic con el botón secundario en Usuarios y, a continuación, elija Nuevo usuario.

  3. Especifique la información siguiente en el cuadro de diálogo Nuevo usuario y, a continuación, haga clic en Crear:

Campo Valor

Nombre de usuario

snapshot_agent

Contraseña

p@ssw0rd

Confirmar contraseña

p@ssw0rd

El usuario debe cambiar la contraseña en el siguiente inicio de sesión

No seleccionado

La contraseña no caduca nunca

seleccionado

Importante:
Esta configuración sólo debe utilizarse para pruebas. En un entorno de producción, asegúrese de que la configuración de su cuenta de usuario cumpla con los requisitos de seguridad de la red. A menudo, utilizará una cuenta de usuario de dominio en lugar de una cuenta de usuario local para el agente de instantáneas.

Crear la carpeta de instantáneas

  1. En el Explorador de Windows, cree una nueva carpeta con el nombre instantáneas. Para esta visita guiada, puede crear la carpeta en el directorio raíz de la unidad C en c:\instantáneas. Haga clic con el botón secundario en la carpeta de instantáneas y seleccione Compartir y seguridad.

  2. En la ficha Compartir, seleccione Compartir esta carpeta y, a continuación, haga clic en Permisos.

  3. En Permisos para instantáneas, haga clic en Agregar.

  4. En Escriba el nombre de objeto a seleccionar, especifique nombreDeEquipo\agente_de_instantáneas donde nombreDeEquipo es el nombre del equipo local, haga clic en Comprobar nombres y, a continuación, haga clic en Aceptar.

  5. En Permisos para instantáneas, elija snapshot_agent, asigne los permisos para Modificar y Leer recursos compartidos y, a continuación, haga clic en Aceptar.

  6. Seleccione la ficha Seguridad.

  7. Haga clic en Agregar.

  8. En Escriba el nombre de objeto a seleccionar, especifique nombreDeEquipo\agente_de_instantáneas donde nombreDeEquipo es el nombre del equipo local, haga clic en Comprobar nombres y, a continuación, haga clic en Aceptar.

  9. Seleccione agente_de_instantáneas y agregue el permiso de escritura Write a la lista de permisos autorizados. La cuenta snapshot_agent ya tendrá otorgados los siguientes permisos:

    • Leer y Ejecutar
    • Ver contenidos de carpetas
    • Leer
    • Escribir
  10. Haga clic en Aceptar para cerrar la ventana Propiedades de instantáneas.

  11. Cierre el Explorador de Windows.

Crear una publicación

  1. En el Explorador de objetos en SQL Server Management Studio, expanda el nodo (local) si no está expandido ya y, a continuación, expanda Réplica.

  2. Haga clic con el botón secundario en la carpeta Publicacioneslocales y seleccione Nueva publicación.

  3. En la pantalla de presentación del Asistente para nueva publicación, haga clic en Siguiente.

  4. Si aún no ha creado una publicación en este equipo, se le solicitará que configure un Distribuidor. Seleccione la primera opción para utilizar el equipo local como su propio Distribuidor y, a continuación, haga clic en Siguiente.

  5. Si aún no ha creado una publicación en este equipo, se le solicitará que especifique una carpeta de instantáneas. Especifique la ruta de recurso compartido de la carpeta de instantáneas que ha creado en el procedimiento anterior. Escriba la ruta del recurso compartido con el formato \\nombreDeServidor\recursoCompartido**en lugar de la ruta local. En esta visita guiada, le recomendamos que especifique \\equipolocal\instantánea, donde equipolocal es el nombre de su equipo local y, a continuación, haga clic en Siguiente.

  6. En la lista de bases de datos, seleccione SQLMobile y, a continuación, haga clic en Siguiente.

  7. En la lista de tipos de publicación, seleccione Publicación de mezcla y, a continuación, haga clic en Siguiente.

  8. En la página Tipos desuscriptor, seleccione para activar la compatibilidad con los suscriptores de SQL Server Compact Edition y haga clic en Siguiente.

  9. En la lista de objetos para publicar, seleccione la casilla de verificación Tablas. Si despliega Tablas, verá que ambas tablas de la base de datos de SQLMobile están seleccionadas. Haga clic en Siguiente.

  10. Se le notifica que se agregarán identificadores únicos a las tablas. Todos los artículos de mezcla necesitan una columna uniqueindentifier. Haga clic en Siguiente.

  11. En la página Filtrar filas de tabla, puede agregar filtros a los datos publicados. Para esta visita guiada, no filtrará los datos. Haga clic en Siguiente.

  12. En la página Agente de instantáneas, puede configurar cuándo se creará la instantánea y con qué frecuencia se ejecuta el Agente de instantáneas. Haga clic en Siguiente para aceptar la configuración predeterminada.

  13. En el cuadro de diálogo Seguridad del agente, haga clic en Configuración de seguridad.

    1. En el cuadro de diálogo Seguridad del Agente de instantáneas, especifique la información de inicio de sesión para la cuenta que ha creado en el procedimiento anterior. La cuenta del proceso es nombre_equipo\snapshot_agent (donde nombre_equipo es el nombre de su equipo) y la contraseña es p@ssw0rd.
    2. Haga clic en Aceptar para guardar la configuración.
    3. Haga clic en Siguiente en la página Seguridad del agente.
  14. En la pantalla Acciones del asistente, puede determinar cuándo se crea la publicación y si desea que se cree un archivo de secuencia de comandos. Desactive Crear una instantánea inmediatamente y, a continuación, haga clic en Siguiente.

  15. En la pantalla Finalización del asistente, especifique SQLMobile para el nombre de la publicación y, a continuación, haga clic en Finalizar.

  16. Se crea la publicación. Una vez finalizado el asistente, haga clic en Cerrar.

Establecer permisos

Debe conceder permisos para la cuenta del Agente de instantáneas y para la cuenta de usuario anónimo de IIS. También debe agregar la cuenta de usuario anónimo de IIS a la Lista de acceso de la publicación (PAL).

Establecer permisos de base de datos

  1. En , en el Explorador de objetos, expanda Seguridad, haga clic con el botón secundario en Inicios de sesión y seleccione Nuevo inicio de sesión.

  2. En el cuadro de diálogo Nuevo inicio de sesión, seleccione Autenticación de Windows, haga clic en Buscar, especifique nombreDeEquipo\agente_de_instantáneas en el cuadro Escriba el nombre de objeto a seleccionar, donde nombreDeEquipo es el nombre del equipo, haga clic en Comprobar nombres y, a continuación, haga clic en Aceptar.

  3. En el panel de navegación, elija el panel Asignación de usuarios.

  4. En la lista de bases de datos, seleccione distribución y la función db_owner, seleccione SQLMobile y la función db_owner y, a continuación, haga clic en Aceptar.

  5. Haga clic con el botón secundario en Inicios de sesión y seleccione Nuevo inicio de sesión.

  6. En el cuadro de diálogo Nuevo inicio de sesión, seleccione Autenticación de Windows, haga clic en Buscar, especifique nombreDeEquipo\iusr_nombreDeEquipo en el cuadro Escriba el nombre de objeto a seleccionar, donde nombreDeEquipo es el nombre del equipo, haga clic en Comprobar nombres y, a continuación, haga clic en Aceptar.

  7. En el panel de navegación, seleccione el panel Asignación de usuarios.

  8. En la lista de bases de datos, seleccione distribución y SQLMobile y, a continuación, haga clic en Aceptar.

Conceder acceso a la publicación

  1. En el Explorador de objetos, expanda Réplica, expanda Publicaciones, haga clic con el botón secundario en la publicación [SQLMobile]:SQLMobile y, a continuación, haga clic en Propiedades.

  2. En el panel de navegación, seleccione Lista de acceso de la publicación.

  3. Haga clic en Agregar. En el cuadro de diálogo Agregar acceso de publicación, se enumera la cuenta IUSR. Selecciónela y, a continuación, haga clic en Aceptar.

  4. Asegúrese de que la cuenta IUSR se encuentra ahora en la PAL y, a continuación, haga clic en Aceptar.

Crear la instantánea de publicación

Antes de que pueda inicializar una suscripción a la publicación de SQLMobile, debe crear la instantánea de publicación.

Crear la instantánea de publicación

  1. En SQL Server Management Studio, en el Explorador de objetos, expanda el nodo del equipo (local).

  2. Expanda la carpeta Publicaciones locales, seleccione el nombre de la publicación, haga clic con el botón secundario en SQLMobile y, a continuación, haga clic en Ver estado del Agente de instantáneas.

  3. En el cuadro de diálogo Ver estado del Agente de instantáneas, haga clic en Inicio.

    Asegúrese de que el trabajo de instantánea ha finalizado correctamente antes de continuar.

Configurar IIS y SQL Server 2005 para la sincronización Web

Ahora que SQL Server se ha configurado con una publicación, debe hacer que la publicación esté disponible en la red para los clientes de SQL Server Compact Edition. SQL Server Compact Edition se conecta a SQL Server a través de IIS. Concretamente, puede crear y configurar un directorio virtual que haga que el Agente de servidor de SQL Server Compact Edition esté disponible para los clientes.

Instalar los componentes de servidor de SQL Server Compact Edition

  1. En el Explorador de Windows, busque el siguiente directorio:

    C:\Archivos de programa\Microsoft SQL Server\90\Tools\Binn\VSShell\Common7\IDE

  2. Haga doble clic en sqlce30setupen.msi para ejecutar el programa de instalación.

  3. En la pantalla de presentación del Asistente para la instalación, haga clic en Siguiente.

  4. Lea y acepte los términos de la licencia del software de Microsoft y, a continuación, haga clic en Siguiente.

  5. En la pantalla Comprobación de la configuración del sistema, asegúrese de que todos los elementos superan la comprobación. El último elemento de la lista figurará como una advertencia si no tiene SQL Server 2000 instalado. Puesto que está utilizando SQL Server 2005, esto no supone ningún problema. Haga clic en Siguiente.

  6. Haga clic en Siguiente en la pantalla siguiente y, a continuación, haga clic en Instalar para iniciar la instalación.

  7. Haga clic en Finalizar.

Configurar la publicación para la sincronización Web

  1. En SQL Server Management Studio, en el Explorador de objetos, expanda el nodo del equipo (local).

  2. Expanda la carpeta Publicaciones locales, seleccione el nombre de la publicación, haga clic con el botón secundario y, a continuación, seleccione Configurar sincronización Web.

  3. En la pantalla de presentación del asistente, haga clic en Siguiente.

  4. En la pantalla Tipo de suscriptor, elija SQL Server Compact Edition y haga clic en Siguiente.

  5. En la pantalla Servidor Web, especifique el nombre de su equipo en el cuadro de texto equipo que ejecuta IIS, si no está ya indicado y, a continuación, haga clic en Crear un nuevo directorio virtual.

  6. En el árbol que aparece, despliegue el equipo, despliegue Sitios Web y, a continuación, seleccione Sitio Web predeterminado.

  7. Haga clic en Siguiente.

  8. En el cuadro de texto Alias de la pantalla Información de directorio virtual, especifique SQLMobile y, a continuación, haga clic en Siguiente.

    Si aparece un cuadro de diálogo de advertencia, haga clic en .

  9. En la pantalla Comunicaciones seguras, seleccione No requiere canal de seguridad (SSL).

  10. Importante   En un entorno de producción, debe habilitar el cifrado SSL para proteger los datos intercambiados a través de Internet entre el suscriptor y el servidor que ejecuta IIS. En la pantalla Autenticación de cliente, seleccione Los clientes se conectarán de forma anónima y, a continuación, haga clic en Siguiente.

  11. En la pantalla Acceso anónimo, acepte la configuración predeterminada haciendo clic en Siguiente.

  12. En la pantalla Acceso a recurso compartido de instantáneas, escriba \\equipo\snapshot, donde equipo es el nombre de su equipo y después haga clic en Siguiente.

    Si aparece una advertencia indicando que el recurso compartido de instantáneas está vacío, haga clic en .

  13. Haga clic en Finalizar.

  14. Haga clic en Cerrar.

  15. En Internet Explorer, especifique la dirección URL https://localhost/SQLMobile/sqlcesa30.dll?diag en Dirección y, a continuación, haga clic en Ir. De esta manera se conecta con el servidor en modo de diagnóstico. Asegúrese de que el informe de diagnóstico del Agente de servidor de SQL Server Compact Edition es correcto.

Tareas de SQL Server Compact Edition

Antes de desarrollar una aplicación que vaya a utilizar SQL Server Compact Edition, a menudo se ahorra tiempo creando previamente la suscripción y la base de datos de SQL Server Compact Edition. SQL Server Management Studio permite crear una base de datos de SQL Server Compact Edition en el equipo local y trabajar con ella. Después puede utilizar dicha base de datos para desarrollar la aplicación.

Crear una base de datos de SQL Server Compact Edition

  1. En SQL Server Management Studio, en el Explorador de objetos, haga clic en Conectar y seleccione SQL Server Compact Edition.

  2. En el campo Archivo de base de datos, elija <Nueva base de datos…>.

  3. En el cuadro de texto del nombre de archivo, especifique c:\sqlmobile.sdf y, a continuación, haga clic en Aceptar.

    Si aparece una advertencia sobre una contraseña en blanco, haga clic en . La base de datos de este tutorial no está cifrada ni protegida mediante contraseña.

  4. En el cuadro de diálogo Conectar al servidor, haga clic en Conectar.

    Se agrega un nuevo nodo denominado SQL Server Compact Edition [Mi PC\...\sqlmobile] al Explorador de objetos.

Crear una nueva suscripción

  1. En el Explorador de objetos, expanda el nodo SQL Server CompactEdition, expanda Réplica, haga clic con el botón secundario en Suscripciones y elija Nueva suscripción.

  2. En la pantalla de presentación, haga clic en Siguiente.

  3. En la pantalla Elegir publicación, en la lista desplegable Publicador, elija <Buscar publicador de SQL Server…>.

  4. En el cuadro de diálogo Conectar al servidor, especifique o elija el nombre del equipo local y, a continuación, haga clic en Conectar.

  5. En la pantalla Elegir publicación, en la lista de publicaciones, despliegue SQLMobile, seleccione la publicación SQLMobile y, a continuación, haga clic en Siguiente.

  6. En la pantalla Identificar suscripción, especifique SQLMobile para el nombre de la suscripción y, a continuación, haga clic en Siguiente.

  7. En la pantalla Autenticación de servidor Web, escriba la dirección URL para el directorio virtual que ha creado en el procedimiento anterior. En esta visita guiada, ha creado un directorio virtual con un URL https://localhost/SQLMobile.

  8. Haga clic en El suscriptor se conectará de forma anónima y, a continuación, haga clic en Siguiente.

  9. En la pantalla de autenticación de SQL Server, haga clic en Siguiente para aceptar la configuración predeterminada.

    En la última pantalla, el asistente muestra el código de ejemplo que puede utilizar al crear una suscripción en su aplicación. Seleccione el código de ejemplo (ya sea Visual Basic o C#, dependiendo del lenguaje que vaya a utilizar para crear la aplicación) y copie el código. Para ello, seleccione el código y presione CTRL+C. Inicie el Bloc de notas u otro editor de texto y pegue el código de ejemplo. Utilizará este código cuando cree la aplicación en los procedimientos siguientes.

  10. Una vez copiado el código de ejemplo, haga clic en Finalizar.

  11. Haga clic en Cerrar.

Crear una aplicación

Crear un nuevo proyecto de dispositivo inteligente

  1. Abra Visual Studio 2005.

  2. En el menú Archivo, seleccione Nuevoproyecto.

  3. En el cuadro de diálogo Nuevo proyecto, en el árbol Tipos de proyecto, despliegue su lenguaje de programación y, a continuación, seleccione Dispositivo inteligente.

  4. En la lista de plantillas, seleccione el tipo de proyecto que desea crear. Para esta visita guiada, seleccione Aplicación para Pocket PC 2003.

  5. Indique un nombre y una ubicación para el proyecto y, a continuación, haga clic en Aceptar. Para esta visita guiada, asigne al proyecto el nombre SQLMobile.

    Visual Studio crea un nuevo proyecto y muestra Form1 tal y como aparecerá en un dispositivo inteligente.

Agregar referencias

  1. En el Explorador de soluciones, haga clic con el botón secundario en Referencias y elija Agregar referencia.

    [!NOTA] Si la carpeta Referencias no aparece enumerada en el Explorador de soluciones, haga clic en Mostrar todos los archivos en la parte superior del Explorador de soluciones.

  2. En la lista de ensamblados .NET, seleccione System.Data.SqlServerCe y, a continuación, haga clic en Aceptar. Si System.Data.SqlServerCe no aparece, siga estos pasos:

    1. Seleccione la ficha Examinar.
    2. Localice el directorio siguiente:
      C:\Archivos de programa\Microsoft Visual Studio 8\Common7\IDE
    3. Seleccione System.Data.SqlServerCe.dll y, a continuación, haga clic en Aceptar.

    La lista de referencias del Explorador de soluciones incluye ahora System.Data.SqlServerCe y su proyecto puede utilizar este ensamblado.

  3. En el Explorador de soluciones, haga clic con el botón secundario en Form1.cs o en Form1.vb y elija Ver código.

  4. En la parte superior del código para el formulario, agregue una directiva para utilizar el espacio de nombres System.Data.SqlServerCe:

    [C#]

    using System.Data.SqlServerCe;
    

    [VB]

    Imports System.Data.SqlServerCe
    

Agregar una conexión de datos

  1. En la ventana principal, cambie de nuevo a la vista Diseño (predeterminada) para Form1.

  2. En el menú Datos, haga clic en Agregar nuevo origen de datos.

    Nota   Si no aparece Agregar nuevo origen de datos, seleccione la vista Diseño para Form1 y, a continuación, vea de nuevo el menú Datos.

  3. En la ventana Elegir un tipo de origen de datos, seleccione Base de datos y, a continuación, haga clic en Siguiente.

  4. En el cuadro de diálogo Elegir la conexión de datos, haga clic en Nueva conexión.

  5. Si aparece un cuadro de diálogo Agregar conexión, haga clic en Cambiar.

  6. En el cuadro de diálogo Elegir origen de datos, en Origen de datos, seleccione Microsoft SQL Server Compact Edition (si existía una conexión, este cuadro de diálogo podría denominarse Cambiar origen de datos). En la lista de proveedores de datos, elija Proveedor de datos de .NET Framework para SQL Server Compact Edition. Haga clic en Continuar o en Aceptar.

  7. En el cuadro Agregar conexión, en Origen de datos, seleccione Mi PC.

    En la sección Propiedades de conexión, en Base de datos, haga clic en Examinar y, a continuación, busque la base de datos que creó en un procedimiento anterior. Si ha seguido los pasos, la base de datos se encuentra en c:\sqlmobile.sdf.

  8. Haga clic en Probar conexión y, a continuación, haga clic en Aceptar para crear la nueva conexión de datos.

  9. En el cuadro de diálogo Elegir la conexión de datos, haga clic en Siguiente.

  10. Si aparece un cuadro de diálogo en el que se le pide que copie el archivo de datos en el proyecto actual, haga clic en .

  11. En la ventana Guardar cadena de conexión, haga clic en Siguiente.

  12. En la ventana Elija los objetos de base de datos, seleccione Tablas y haga clic en Finalizar.

Elegir los datos a visualizar

  1. En el menú Datos, elija Mostrar orígenes de datos.

  2. Arrastre la tabla MembershipData de la ventana Orígenes de datos a la ventana Diseño de formularios. Se crea una cuadrícula de datos en Form1 y los nombres de columna se indican automáticamente.

  3. Haga clic con el botón secundario sobre la cuadrícula de datos y, a continuación, haga clic en Propiedades.

  4. En la ventana Propiedades, cambie el valor Dock (Acoplar) a Top (Superior). Puede hacerlo haciendo clic en la barra superior de la representación gráfica que aparece, o especificando Top en el campo correspondiente al valor. La cuadrícula de datos se desplazará y se modificará su tamaño para llenar la parte superior de Form1.

  5. En la esquina superior derecha de la cuadrícula de datos, haga clic en la flecha pequeña. En el menú que aparece, elija Generar formularios de datos.

  6. Arrastre la tabla FlightData de la ventana Orígenes de datos a la ventana Diseño de formularios. Se crea una cuadrícula de datos en Form1 y los nombres de columna se indican automáticamente.

  7. Puede utilizar la configuración de Propiedades para esta cuadrícula de datos para establecer la propiedad Dock en Bottom (Inferior).

Agregar código

En la página de código de la aplicación agregará una variable de cadena que incluya la ruta de acceso y el nombre del archivo de base de datos, el código para eliminar el archivo de base de datos si ya existe, y el código para establecer una conexión con la publicación de SQL Server, sincronizar los datos y crear una base de datos local que contenga esos datos.

Agregar el código

  1. En el Explorador de soluciones, haga clic con el botón secundario en Form1 y elija Ver código.

  2. En la página de código, localice la definición de clase de Form1. Agregue una variable de cadena y asígnele la ruta de acceso y el nombre del archivo del archivo .sdf. El origen de datos creado por Visual Studio en los pasos anteriores presupone que el archivo de base de datos reside en la carpeta \Archivos de programa\nombreDeAplicación, donde nombreDeAplicación es el nombre de la aplicación. Por ejemplo, si ha asignado un nombre al nuevo proyecto SQLMobile, la variable de cadena debe establecerse en "\Program Files\SQLMobile\sqlmobile.sdf".

  3. Las primeras líneas de su definición de clase deberían parecerse al siguiente código:

    [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. Cree un método que elimine el archivo de base de datos si ya existe. Esto garantizará que la aplicación cargue los datos más recientes cada vez que se ejecute. El método debe llamarse DeleteDB. El código debería parecerse al siguiente:

    [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. Cree un nuevo método denominado Sync que efectúe la sincronización. Para ello, utilizará el código que ha copiado del Asistente para nueva suscripción en un paso anterior. Cuando pegue el código, debe efectuar dos cambios en el código:

    1. Cambie el valor SubscriberConnectionString de modo que señale a la ruta de acceso y nombre de archivo correctos, como se indica en la variable de nombre de archivo.

    2. Cambie el valor de AddOption de ExistingDatabase a CreateDatabase.
      Una vez finalizado, el método de sincronización (Sync) debería parecerse a éste:
      [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. Por último, agregue el código al principio del controlador de eventos Form1_Load que llama a los dos métodos que acaba de crear. El controlador de eventos Form1_Load debería parecerse al siguiente:

    [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
    

Implementar y probar la aplicación

Implementar la aplicación

  1. En el menú Depurar, elija Iniciar depuración.

  2. Si aparece el cuadro de diálogo Implementar, elija Emulador SE de Pocket PC 2003 y, a continuación, haga clic en Implementar.

  3. Se abre el emulador en una nueva ventana. La primera vez que implemente la aplicación en el emulador, se instalarán .NET Compact Framework y SQL Server Compact Edition. Puede tardar varios minutos. Una vez instalados, se instala y ejecuta su aplicación.

    Se carga su aplicación y muestra las dos cuadrículas de datos. Si hace clic en un valor de la cuadrícula de datos MembershipData, los datos de la cuadrícula de datos FlightData se actualizan automáticamente.

  4. Cierre la aplicación y, en Visual Studio, en el menú Depurar, haga clic en Detener depuración.

Vea también

Conceptos

Proteger las bases de datos (SQL Server Compact Edition)

Ayuda e información

Obtener ayuda sobre SQL Server Compact Edition