2011-02-08 19 views
17

¿Alguien me puede indicar un ejemplo de uso de sqlite con Monodroid? No he podido encontrar ni siquiera uno.Necesita un ejemplo de sqlite con Monodroid

+0

Si necesita consejos sobre cómo trabajar con SQLite también escribió una entrada de blog aquí: http://www.elucidsoft.com/blog/2011/12/31/mono-android-working-with-sqlite/ – emalamisura

Respuesta

36

Obviamente necesito agregar una demostración de SQLite al ejemplo de ApiDemo.

Ya que no sé cuándo va a suceder, aquí está la versión rápida y sucia:

Sin embargo, para utilizar el código siguiente debe tener como objetivo a Android 2.2 o posterior para utilizar Mono.Data. Sqlite. Si necesita orientar una versión anterior de Android, debe buscar un reemplazo completamente administrado, como managed-sqlite.

Además, este ejemplo está utilizando Mono.Data.Sqlite.dll, que se incluye en MonoDroid SDK.

Primero, edite las referencias de ensamblado de su proyecto y agregue una referencia para Mono.Data.Sqlite.dll y System.Data.dll.

En segundo lugar, dentro de su código fuente, agregue:

using System.Data; 
using Mono.Data.Sqlite; 

Por último, el uso normal de vosotros código de ADO.NET:

string dbPath = Path.Combine (
     Environment.GetFolderPath (Environment.SpecialFolder.Personal), 
     "items.db3"); 
bool exists = File.Exists (dbPath); 
if (!exists) 
    SqliteConnection.CreateFile (dbPath); 
var connection = new SqliteConnection ("Data Source=" + dbPath); 
connection.Open(); 
if (!exists) { 
    // This is the first time the app has run and/or that we need the DB. 
    // Copy a "template" DB from your assets, or programmatically create one. 
    var commands = new[]{ 
     "CREATE TABLE [Items] (Key ntext, Value ntext);", 
     "INSERT INTO [Items] ([Key], [Value]) VALUES ('sample', 'text')" 
    }; 
    foreach (var command in commands) { 
     using (var c = connection.CreateCommand()) { 
      c.CommandText = command; 
      c.ExecuteNonQuery(); 
     } 
    } 
} 
// use `connection`... 
// here, we'll just append the contents to a TextView 
using (var contents = connection.CreateCommand()) { 
    contents.CommandText = "SELECT [Key], [Value] from [Items]"; 
    var r = contents.ExecuteReader(); 
    while (r.Read()) 
     MyTextView.Text += string.Format ("\n\tKey={0}; Value={1}", 
       r ["Key"].ToString(), r ["Value"].ToString()); 
} 
connection.Close(); 
+1

¡Muchas gracias! Este es el eslabón perdido para mí. – basheps

+1

+1 en Gracias. Este fue el eslabón perdido para mí también. –

+0

System.IO no existe en Mono para Android ... ¿Cómo podemos usar Mono para aplicaciones de tipo Android? – dinesh

Cuestiones relacionadas