Intégrer SQLite dans son application WIndows (Phone)

OS: Windows Phone 8.x et Universal Apps

Bonjour à tous. J’ai mis le temps mais je me suis mis à intégrer à tout va des bases SQLite dans mes dernières applications. Effectivement j’étais très attaché à la méthode SQLCE décrite par Biperra ici. Avec l’avènement des applications universelles, je m’y suis intéressé et je suis arrivé au constat que quelle que soit la technologie employée, on pouvait transversalité la gestion de sa base. Voici comment.

1) Quel est le sujet du jour?

L’objectif de ce tutoriel est de reproduire l’interface suivante:

Mais n’ayant pas été capable de faire fonctionner le tutoriel Silverlight sur une application universelle, j’ai décidé de reproduir le même fonctionnement mais avec une mise en place simple mais tout autant efficace.

Les pré-requis afin de réaliser cette manipulation sont :

  1. Visual Studio 201x
  2. Une connexion internet pour télécharger les extensions

 

2) Le programme

2.1) L’installation des extensions

Il suffit dans Visual Studio de faire Outils/Extensions et mises à jour.

Installer les extensions suivant votre besoin:

Capture d’écran (3)

 

Ensuite dans votre application via Nuget , il faut installer sqlite-net Cette installation ajoutera dans vos projets 2 fichiers: SQLite.cs et SQLiteAsync.cs

 

Capture d’écran (4)

Particularité de Windows Phone 8: Il faudra également installer sqlite-net-wp8 de Peter Huene. Et dans les propriétés de l’application, ajouter dans les symboles de compilation conditionnelle: USE_WP8_NATIVE_SQLITE . Sinon vous aurez un message d’erreur à tous les étages.

A ce niveau , vous avez une base bien installée mais qui vous “obligera “ à compiler soit en x86 ou ARM suivant votre besoin.

2.2)Petits codes

Une fois qu’on l’a installée il faut déclarer sa classe dont se servira notre base SQL. Par exemple si on veut faire un agenda, voici un exemple de classe:

using SQLite;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace monagenda
{
public class lagenda
{
[PrimaryKey]
public string prenom { get; set; }
public string nom { get; set; }
public string numéro { get; set; }
}
}

Maintenant on va créer notre base dans notre application:

SQLiteAsyncConnection mabase = new SQLiteAsyncConnection(« lagenda »);

await conn.CreateTableAsync<lagenda>();

Pour ajouter un enregistrement:

public async void InsertPost(Post post)
{
await conn.InsertAsync(post);
}

Pour toutes les autres fonctionnalités je vous invite à lire cet article très bien fait et multiplateforme qui décrit les principales fonctions.

3) Conclusion

Voilà! Nous venons de voir comment créer une base SQLite. Vous remarquerez qu’il est plutôt aisé de la mettre. A vous maintenant de jouer. Pour information, j’ai utilisé cette technologie dans mon application Card Management et dans SMS, Quick! (à venir prochainement).


Leave a Reply