Apuntes SQLite

¡Hola!

En algún post anterior ya había escrito de SQLite, ahora me gustaría compartirles algunas notas adicionales que he ido recolectando de cursos y experiencias.

Cómo utilizarlo en UWP

En el post que he mencionado anteriormente me ha faltado agregar UWP, los pasos adicionales a realizar es agregar la referencia a Microsoft Visual C++ 2013.
C++

Y regresar la ruta del folder local con el siguiente código.

string path = ApplicationData.Current.LocalFolder.Path;
string fullPath= Path.Combine(path, fileName);
return new SQLiteConnection(fullPath);

Atributos soportados para definir esquemas

Aquí listo algunos de los atributos soportados por SQLite para definir tu esquema.

  • [Table(name)]
  • [Column(name)]
  • [PrimaryKey]
  • [AutoIncrement]
  • [Indexed]
  • [MaxLength(value)]
  • [Unique]
  • [NotNull]
  • [Ignore]

Tipos de datos soportados y equivalentes

Esta es una tabla de los tipos de datos que soporta c# y a que tipo corresponden en SQLite.

C# type SQLite type
int, longinteger, bigint
boolinteger(1=true)
float, double, decimalreal
string, GUIDvarchar
DateTimenumeric or text
byte[]blob

Transacciones

Puedes utilizar transacciones para asegurar operaciones atómicas, consistentes, aisladas y durables.
Con un código como el siguiente:

´connection.RunInTransactionAsync(connection=>{ // Operaciones });´

Puntos adicionales

  • Solo puedes ejecutar una operación a la vez, si no respetas este punto la base de datos puede llegar a lanzar una SQLiteException con el mensaje "corrupt"
  • Si SQLite lanza una SQLiteException con el mensaje "corrupt" la base de datos necesita ser borrada y creada nuevamente.

Espero te sirva de guía rápida para utilizar SQLite en tu proyecto y seguramente actualizare este post con datos adicionales que me parezcan interesantes y útiles. Tú ¿Qué datos agregarías? Espero me ayudes a actualizar esta lista.

Por lo mientras me despido.
¡Saludos! @SaturPimentel

Referencias

Documentación

https://www.sqlite.org/docs.html

Proyecto en GitHub

https://github.com/praeclarum/sqlite-net