none
sqlite con WP7 RRS feed

  • Pregunta

  • Buenos dias,

     

    llevo unos dias buscando un cliente sqlite para WP7 estable que emule correctamente las carencias que se ven en torno a una base de datos embebida. He encontrado un cliente en codeplex que puedes conectar a una base de datos online mediante parametros pero el servicio "desconectado" no está implentado. Lo que realmente busco es un cliente que implemente el servicio desconectado y ADO .NET (datatable - dataadapter) , ¿habeis probado alguno?.

     

    un abrazo fuerte y gracias por este tipo de foros.

    lunes, 1 de agosto de 2011 6:16

Respuestas

  • Hola Pedro:

    He mirado en las dll de Windows Phone 7 y por ningún sitio encuentro System.Data.dll, que es donde se definen DataTable y DbDataAdapter, piensa que el desarrollo sobre WP7 esta basado en Silverlight y me consta que esos dos objetos ya no tenían soporte y de hecho si tu agregas a un proyecto SilverLight la referencia a System.Data.dll,  te dice que esa librrería no se genero para Silverlight. 

     

    Con lo cual mi consejo es que no sigas buscando, excepto que haya algo implementado por terceross. Te recomiendo al igual que Yeray que utilices SQL Server CE y linq to sql . 

     

    Entiendo que lo que te transmite Yeray es para Mango.

     

    No se si el proyecto que has encontrado en codeplex es este http://wp7sqlite.codeplex.com/, si es así ,he mirado en la librería Community.CsharpSqlite.SqlLiteClient.WP7 y lo único que se ve es SqlliteDataReader y SqlliteCommand. No he visto ni DataTable ni DataAdapter.

     

    Saludos,


    phurtado
    • Marcado como respuesta Pedro Net martes, 2 de agosto de 2011 10:13
    lunes, 1 de agosto de 2011 7:00
  • Buenas

    SI, entiendo que estamos hablando de mango a estas alturas, (en 22 dias se empiezan a admitir apps para Windows Phone 7.5 en el marketplace).

    A parte de esto, una realidad: DataTable y DataAdapter son mecanismos de ADO.NET del PASADO, Obsoletos y no deseables para el desarrollo.

    Ahora trabajamos con objetos POCO y LINQ TO SQL como ORM lo cual nos permite dar un aspecto de orientacion a objetos a nuestras bases de datos relacionales.

    Mira este artículo en mi blog sobre SLQ Server CE para WIndows Phone 7.5:

    http://geeks.ms/blogs/jyeray/archive/2011/07/19/sql-server-ce-en-windows-phone-mango.aspx

    Tienes todo lo necesario para empezar a trabajar.

    Un saludo!

    P.D.: Pedro en Mango System.Data está definido internamente para su uso por el orm de LINQ TO SQL, pero no es accesible para Silverlight, nosotros debemos usar LINQ TO SQL con el contexto de datos para trabajar.

     


    MCTS .NET Framework 3.5 Windows Forms Application Development
    MCTS .NET Framework 3.5 Windows Presentation Foundation
    Visita mi Blog en Geeks.ms
    Sigueme en Twitter
    • Marcado como respuesta Pedro Net martes, 2 de agosto de 2011 10:13
    lunes, 1 de agosto de 2011 7:05
    Moderador
  • Ya lo tengo. Al final lo he hecho más sencillo. Recorrer el datareader que sí contempla la libreria y rellenar un datatable.

     

    saludos

    • Marcado como respuesta Pedro Net viernes, 12 de agosto de 2011 11:04
    viernes, 12 de agosto de 2011 11:04

Todas las respuestas

  • Hola!

    ¿Por que usar Datatable + data adapter? LINQ TO SQL te da todo lo necesario que te puede dar un datatable, ¿Cual es el problema exactamente con SQL Server CE?

     

    Un saludo!


    MCTS .NET Framework 3.5 Windows Forms Application Development
    MCTS .NET Framework 3.5 Windows Presentation Foundation
    Visita mi Blog en Geeks.ms
    Sigueme en Twitter
    lunes, 1 de agosto de 2011 6:29
    Moderador
  • Hola Pedro:

    He mirado en las dll de Windows Phone 7 y por ningún sitio encuentro System.Data.dll, que es donde se definen DataTable y DbDataAdapter, piensa que el desarrollo sobre WP7 esta basado en Silverlight y me consta que esos dos objetos ya no tenían soporte y de hecho si tu agregas a un proyecto SilverLight la referencia a System.Data.dll,  te dice que esa librrería no se genero para Silverlight. 

     

    Con lo cual mi consejo es que no sigas buscando, excepto que haya algo implementado por terceross. Te recomiendo al igual que Yeray que utilices SQL Server CE y linq to sql . 

     

    Entiendo que lo que te transmite Yeray es para Mango.

     

    No se si el proyecto que has encontrado en codeplex es este http://wp7sqlite.codeplex.com/, si es así ,he mirado en la librería Community.CsharpSqlite.SqlLiteClient.WP7 y lo único que se ve es SqlliteDataReader y SqlliteCommand. No he visto ni DataTable ni DataAdapter.

     

    Saludos,


    phurtado
    • Marcado como respuesta Pedro Net martes, 2 de agosto de 2011 10:13
    lunes, 1 de agosto de 2011 7:00
  • Buenas

    SI, entiendo que estamos hablando de mango a estas alturas, (en 22 dias se empiezan a admitir apps para Windows Phone 7.5 en el marketplace).

    A parte de esto, una realidad: DataTable y DataAdapter son mecanismos de ADO.NET del PASADO, Obsoletos y no deseables para el desarrollo.

    Ahora trabajamos con objetos POCO y LINQ TO SQL como ORM lo cual nos permite dar un aspecto de orientacion a objetos a nuestras bases de datos relacionales.

    Mira este artículo en mi blog sobre SLQ Server CE para WIndows Phone 7.5:

    http://geeks.ms/blogs/jyeray/archive/2011/07/19/sql-server-ce-en-windows-phone-mango.aspx

    Tienes todo lo necesario para empezar a trabajar.

    Un saludo!

    P.D.: Pedro en Mango System.Data está definido internamente para su uso por el orm de LINQ TO SQL, pero no es accesible para Silverlight, nosotros debemos usar LINQ TO SQL con el contexto de datos para trabajar.

     


    MCTS .NET Framework 3.5 Windows Forms Application Development
    MCTS .NET Framework 3.5 Windows Presentation Foundation
    Visita mi Blog en Geeks.ms
    Sigueme en Twitter
    • Marcado como respuesta Pedro Net martes, 2 de agosto de 2011 10:13
    lunes, 1 de agosto de 2011 7:05
    Moderador
  • Hola Yosue:

     

    Pedro en Mango System.Data está definido internamente para su uso por el orm de LINQ TO SQL, pero no es accesible para Silverlight, nosotros debemos usar LINQ TO SQL con el contexto de datos para trabajar.

     

    Perdona por la pregunta, pero no he probado Mango. ¿Ese System.Data es un namespace de alguna dll o existen un System.Data.Dll, no accesible?.

     

    Saludos,



    phurtado
    lunes, 1 de agosto de 2011 8:17
  • Existe a nivel de sistema, pero no es accesible desde codigo manejado de Silverlight. Tienes accesible el System.Data.Linq, para el ORM, que internamente usa System.Data.

    Un saludo!


    MCTS .NET Framework 3.5 Windows Forms Application Development
    MCTS .NET Framework 3.5 Windows Presentation Foundation
    Visita mi Blog en Geeks.ms
    Sigueme en Twitter
    lunes, 1 de agosto de 2011 8:21
    Moderador
  • Gracias Yosue:

     

    Me puedes pasar un link para descargar mango, todo lo que he encontrado es la Beta2.

     

    Saludos,


    phurtado
    lunes, 1 de agosto de 2011 8:26
  • Por ahora es lo que tenemos, la beta2.

    A finales de este mes se pondrá a disposicion la RTM para todo el mundo.

    Un saludo!


    MCTS .NET Framework 3.5 Windows Forms Application Development
    MCTS .NET Framework 3.5 Windows Presentation Foundation
    Visita mi Blog en Geeks.ms
    Sigueme en Twitter
    • Propuesto como respuesta Pedro Hurtado lunes, 1 de agosto de 2011 8:29
    lunes, 1 de agosto de 2011 8:28
    Moderador
  • Gracias a ambos. La decisión sobre la instalación de SQlite en dispositivos moviles fue sobre todo porque no se tenia que instalar ninguna otra aplicación a parte de la propia para utilizar sql server ce y lo tienes todo embebido en un fichero, por otro lado destacar los tiempos de acceso a la base de datos que son realmente buenos. Al tener un modelo personalizado para diferencias BD y diferentes plataformas (monodroid, monotouch y WM) usando ADO .NET es bastante costoso modificarlo con otra estructura bastante diferente.  Aún así LINQ To SQL seguramente sea la solución más correcta para esta plataforma, sin dudarlo.

    Pedro, efectivamente el cliente que he visto más óptimo es el wp7sqlite de codeplex pero no contempla el sistema desconectado. Lo que estoy pensando es en implementar el source y realizar un metodo que guarde el contenido del datareader y tenga como salida una colección para no tener que modificar procedimientos que son genéricos para muchas aplicaciones.

     

    Si veo dificultad tendré que adaptarlo todo a sql server ce solo para esta plataforma. Sigo online viendo las diferentes opiniones sobre este tema.

     

    un abrazo


    lunes, 1 de agosto de 2011 8:43
  • Estoy documentandome bastante sobre sql server ce y he visto bastante info  en la pagina de Josue . La verdad es que el producto es realmente bueno pero habrá mucha gente que tenga librerias que hagan más facil el acceso a una base de datos con ADO.net y sea muy engorroso pasarlo todo al entorno de clase-tabla de linq. ¿Que opinais?.

     

    saludos

    martes, 2 de agosto de 2011 9:42
  • Buenas!

    ME alegro que te haya servido de ayuda mi blog :)

    A ver, no es un cambio trivial, hay que rehacer todo el acceso a datos, hay herramientas como SQLMetal que te permiten coger una base de datos sdf de compact framework y crear toda la infrastructura de clases necesaria, lo que facilita mucho, es una opción que puedes barajar.

    Independientemente, es una aproximación al acceso a datos más moderno y usado en todos los desarrollos actuales con .NET 4, donde se intenta dar de lado a datatable, datasets...

    Un saludo!


    MCTS .NET Framework 3.5 Windows Forms Application Development
    MCTS .NET Framework 3.5 Windows Presentation Foundation
    Visita mi Blog en Geeks.ms
    Sigueme en Twitter
    martes, 2 de agosto de 2011 10:07
    Moderador
  • Buenas tardes compañeros,

    he logrado encontrar una libreria que implemente los objectos de ADO.NET y poder referenciarlos en el proyecto junto a la libreria de SQLITE http://wp7sqlite.codeplex.com/, el problema es que a esta libreria le falta implementar el SqliteDataAdapter. Me gustaria implementarlo pero ando algo perdido de como hacerlo, podriais orientarme?.

    Esta libreria de wp7sqlite está basada en la C#Sqlite pero implementada para windows phone. La página web de la libreria C#Sqlite es http://code.google.com/p/csharp-sqlite/ y sí está implementado el DataAdapter pero es para plataforma PC.

    Sé que no es lo más actual seguir este camino pero es un palizón cambiar toda la programación que tengo hecha sabiendo que solo me queda esta implementación.

    un abrazo

    jueves, 11 de agosto de 2011 11:16
  • Ya lo tengo. Al final lo he hecho más sencillo. Recorrer el datareader que sí contempla la libreria y rellenar un datatable.

     

    saludos

    • Marcado como respuesta Pedro Net viernes, 12 de agosto de 2011 11:04
    viernes, 12 de agosto de 2011 11:04
  • Ya lo tengo. Al final lo he hecho más sencillo. Recorrer el datareader que sí contempla la libreria y rellenar un datatable.

     

    saludos

    Hola Pedro, muy buenos días, quisiera pedirte si pudieras compartir como lo has hecho Recorrer el datareader y rellenar un datatable supongo en SQLite, no se tal vez podrias compartirme la parte de codigo que te hace posible.

     

    Muchas gracias.

     

    Saludos.


    • Editado marcois viernes, 9 de diciembre de 2011 12:53
    viernes, 9 de diciembre de 2011 12:52