Microsoft SQL Server CE es la base de datos compacta para el desarrollo rápido de aplicaciones, tanto en el modo nativo como en .NET Compact Framework, que amplía las capacidades de administración de datos empresariales a los dispositivos.
SQL Server CE es una poderosa herramienta para el fácil desarrollo de aplicaciones móviles que soportan sintaxis del Lenguaje de Consulta Estructurado (SQL) proporcionando de un modelo de desarrollo consistente con SQL Server.
Este esta diseñado para integrarse con el Microsoft .NET Compact Framework por medio del Visual Studio simplificando el desarrollo de aplicaciones con bases de datos en dispositivos inteligentes.
Desarrollo
En este artículo vamos a crear una aplicación completa para dispositivos móviles en C#, la cual hará un acceso a una base de datos de SQL Server CE y la muestre en un DataGrid para consultarla desde nuestro dispositivo.
Primero vamos a crear un nuevo proyecto en C# y va a ser una Aplicación para Smart Device, a esta la llamaremos SQLServerCESample.
Después Visual Studio nos preguntará la plataforma de destino que vamos a utilizar, en este caso le indicaremos que será para PocketPC y será un proyecto para una aplicación Windows, imagen 2.
Dado esto nos aparecerá una forma similar a la de Windows Forms donde vamos a comenzar a hacer nuestro ejemplo, imagen 3.
Vamos a arrastrar a nuestra forma desde la barra de herramientas un DataGrid y un Boton para realizar nuestro ejemplo, imagen 4.
Después de llevado a cabo esto vamos a requerir agregar dos referencias a nuestro proyecto, estas serían:
System.Data
System.Data.Common
System.Data.SqlServerCe
Ya que tenemos nuestras referencias procederemos a programar nuestra APP de la siguiente manera:
Primeramente vamos a crear un método que se encarge de crear una tabla en nuestro SQL Server CE, el código que muestro a continuación trae sus respectivos comentarios:
private void CrearTabla()
{
//Indicamos el origen de datos
SqlCeEngine objEg = new SqlCeEngine("Data Source=\\my documents\\MiBD.SDF");
SqlCeConnection objCon = new SqlCeConnection("Data Source=\\my documents\\MiBD.SDF");
try
{
//Creamos la Base de Datos de SQL Server CE
objEg.CreateDatabase();
objEg.Dispose();
objCon.Open();
//Creamos la tabla Amigos
SqlCeCommand objCom = new SqlCeCommand("CREATE TABLE Amigos(ID INT PRIMARY KEY, Nombre NVARCHAR(10))", objCon);
objCom.ExecuteNonQuery();
//Le insertamos información a la tabla Amigos
objCom.CommandText = "INSERT INTO Amigos VALUES(1, 'MARIO')";
objCom.ExecuteNonQuery();
objCom.CommandText = "INSERT INTO Amigos VALUES(2, 'LUIS')";
objCom.ExecuteNonQuery();
objCom.CommandText = "INSERT INTO Amigos VALUES(3, 'PUYUL')";
objCom.ExecuteNonQuery();
objCom.CommandText = "INSERT INTO Amigos VALUES(4, 'CANCALAS')";
objCom.ExecuteNonQuery();
objCom.CommandText = "INSERT INTO Amigos VALUES(5, 'ELIGIO')";
objCom.ExecuteNonQuery();
objCom.CommandText = "INSERT INTO Amigos VALUES(6, 'COBRA DE OQUIS')";
objCom.ExecuteNonQuery();
objCom.CommandText = "INSERT INTO Amigos VALUES(7, 'MAL AMIGO')";
objCom.ExecuteNonQuery();
objCom.CommandText = "INSERT INTO Amigos VALUES(8, 'NEGRERO')";
objCom.ExecuteNonQuery();
}
catch (SqlCeException ex)
{
Console.WriteLine(ex.Message);
}
finally
{
objCon.Close();
objCon.Dispose();
}
}
Básicamente lo que se hizo fue indicarle al SQL Server CE la ruta de nuestra base de datos, llevar a cabo la conexión, y mediante instrucciones de SQL básicas fuimos creando primeramente la tabla y después los elementos de la misma.
Ya que hemos creado el método que nos va a dar la capacidad de crear dicha tabla, ahora vamos a mostrar los registros que acabamos de crear en nuestro DataGrid, para eso vamos al evento _Click de nuestro botón que agregamos y codificamos lo siguiente:
private void btnCargar_Click(object sender, System.EventArgs e)
{
//Creamos la tabla
CrearTabla();
//Especificamos el origen de datos
SqlCeConnection oCon = new SqlCeConnection("Data Source=\\my documents\\MiBD.SDF");
SqlCeDataAdapter oDA = new SqlCeDataAdapter("SELECT * FROM Amigos", oCon);
DataSet oDS = new DataSet("Amigos");
try
{
//Rellenamos el dataset
oDA.Fill(oDS);
}
catch (SqlCeException ex )
{
MessageBox.Show(ex.Message);
}
finally
{
//Asignamos al datasource del datagrid nuestro dataset
oDA.Dispose();
this.dgElements.DataSource = oDS.Tables[0].DefaultView;
}
}
Lo que se hizo básicamente es crear dicha conexión e hicimos el DataBind de nuestro DataGrid a dicho origen de datos. Si corremos nuestra APP nos aparecerá algo como la imagen 6.
Aquí nos pregunta que elijamos el dispositivo al cual queremos implementar nuestra solución. A lo cual da dos opciones:
Dispositivo Pocket PC. Si ya tenemos una PocketPC física conectada y sincronizada directamente con nuestra PC.Emulador de PocketPC 2002. Pequeño Software que emula el dispositivo en el cual podemos hacer pruebas como si tuviéramos la PocketPC físicamente.
Escogemos la que mejor sea nuestro caso y damos clic en Implementar.
En dado caso de que no tengamos instalado el Compact .Net Framework, Visual Studio instalará todo lo que se requiera para tal efecto. Esto toma algo de tiempo (2 mins). Ya después terminada la instalación de componentes (si se requieren) y llevada a cabo la implementación en nuestra PocketPCFuente