|
|
| |
| |
Netveloper :: SQL Server :: Articulos :: Acceso a base de datos de SQL Server CE med ... |
|
| |
| |
Acceso a base de datos de SQL Server CE mediante dispositivos móviles. |
|
 |
|
Enviar a un amigo |
| |
|
Fecha: 07/05/2006 17:41:41 |
|
|
| |
|
Autor: Sergio José Villaneda Ávila |
Ver comentarios |
|
|
| |
|
Visitas: 34242 Comentarios: 36 |
Imprimir |
|
| |
| |
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 PocketPC se verá algo como la imagen 7.
Y Listo!, ya hemos accedido a una base de datos de SQL Server CE desde nuestro dispositivo móvil.
|
 Imagen 1
 Imagen 2
 Imagen 3
 Imagen 4
 Imagen 5
 Imagen 6
 Imagen 7
|
|
| |
|
|
|
| |
Referencias. |
|
| |
:: Código del artículo
|
|
| |
Últimos comentarios |
|
| |
david - dacorchuelo@hotmail.com (15/12/2009 11:49:06) muy buen tutorial, excelente..........muchas gracias justo lo que necesitaba.
 Jems - Jems_moreno_s@hotmail.com (31/08/2009 22:06:41) Saludos a todos,
Veo el ejemplo bastante practico, pero habría la manera de remplazar el código por un comando que haga una insersión masiva desde un archivo txt en el pocket..?
Gracias.
 pedro - infanfante_primero.1@hotmail.com (19/07/2009 19:41:57) Gracias, me ayudo mucho tu ejemplo

[+] comentarios
|
|
| |
Comentar el artículo. |
|
| |
|
|
|
|