Saltar al contenido

Usar una base de datos local en Xamarin

Esta es la contestación más correcta que te podemos brindar, pero obsérvala pausadamente y analiza si se puede adaptar a tu proyecto.

Solución:

Después de pensar que esto era algo trivial, se demostró que estaba equivocado cuando intenté configurar un proyecto de prueba rápida. Esta publicación contendrá un tutorial completo sobre cómo configurar una base de datos para una aplicación de Android en Xamarin que será útil como referencia para futuros usuarios de Xamarin.

De un vistazo:

  1. Agregue Sqlite.cs a su proyecto.
  2. Agregue su archivo de base de datos como un Activo.
  3. Configure su archivo de base de datos para construir como un AndroidAsset.
  4. Copie manualmente el archivo de la base de datos de su apk a otro directorio.
  5. Abra una conexión de base de datos usando Sqlite.SqliteConnection.
  6. Operar en la base de datos usando Sqlite.

Configuración de una base de datos local para un proyecto de Xamarin Android

1. Agregue Sqlite.cs a su proyecto.

Comience yendo a este repositorio y descargando Sqlite.cs; esto proporciona la API Sqlite que puede usar para ejecutar consultas en su base de datos. Agregue el archivo a su proyecto como archivo fuente.

2. Agregue DB como activo.

A continuación, obtenga su base de datos y cópiela en el directorio de activos de su proyecto de Android y luego impórtelo en su proyecto para que aparezca debajo de la Activos carpeta dentro de su solución:

ingrese la descripción de la imagen aquí

Estoy usando el ejemplo de base de datos Chinook_Sqlite.sqlite renombrado a db.sqlite desde este sitio a lo largo de este ejemplo.

3. Configure la base de datos para compilar como AndroidAsset.

Haga clic derecho en el archivo DB y configúrelo para construir acción AndroidAsset. Esto asegurará que se incluya en el directorio de activos del APK.

ingrese la descripción de la imagen aquí

4. Copie manualmente la base de datos de su APK.

Como la base de datos se incluye como un activo (empaquetado dentro del APK), deberá extraerlo.

Puedes hacer esto con el siguiente código:

string dbName = "db.sqlite";
string dbPath = Path.Combine (Android.OS.Environment.ExternalStorageDirectory.ToString (), dbName);
// Check if your DB has already been extracted.
if (!File.Exists(dbPath))

    using (BinaryReader br = new BinaryReader(Android.App.Application.Context.Assets.Open(dbName)))
    
        using (BinaryWriter bw = new BinaryWriter(new FileStream(dbPath, FileMode.Create)))
        
            byte[] buffer = new byte[2048];
            int len = 0;
            while ((len = br.Read(buffer, 0, buffer.Length)) > 0)
            
                bw.Write (buffer, 0, len);
            
        
    

Esto extrae la base de datos como un archivo binario del APK y lo coloca en la ruta de almacenamiento externo del sistema. Siendo realistas, el DB puede ir a donde quieras, solo he elegido pegarlo aquí.

También leí que Android tiene una carpeta de bases de datos que almacenará bases de datos directamente; No pude hacer que funcionara, así que acabo de ejecutar este método de usar una base de datos existente.

5. Abra la conexión de base de datos.

Ahora abra una conexión a la base de datos a través de la clase Sqlite.SqliteConnection:

using (var conn = new SQLite.SQLiteConnection(dbPath))

        // Do stuff here...

6. Operar en base de datos.

Por último, como Sqlite.net es un ORM, puede operar en la base de datos utilizando sus propios tipos de datos:

public class Album

    [PrimaryKey, AutoIncrement]
    public int AlbumId  get; set; 
    public string Title  get; set; 
    public int ArtistId  get; set; 


// Other code...

using (var conn = new SQLite.SQLiteConnection(dbPath))

    var cmd = new SQLite.SQLiteCommand (conn);
    cmd.CommandText = "select * from Album";
    var r = cmd.ExecuteQuery ();

    Console.Write (r);

Resumen

¡Y así es como agregar una base de datos Sqlite existente a su solución Xamarin para Android! Para obtener más información, consulte los ejemplos incluidos con la biblioteca Sqlite.net, sus pruebas unitarias y los ejemplos en la documentación de Xamarin.

Agradecemos que desees añadir valor a nuestra información participando con tu veteranía en las interpretaciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *