c# - studio - Necesito un ejemplo de sqlite con Monodroid
xamarin forms sqlite (1)
¿Alguien puede indicarme un ejemplo de uso de sqlite con Monodroid? No he podido encontrar ni uno.
Obviamente, necesito agregar una demostración de SQLite a la muestra de ApiDemo.
Como no sé cuándo sucederá, aquí está la versión rápida y sucia:
Sin embargo, para usar el siguiente código debe estar apuntando a Android 2.2 o posterior para usar Mono.Data.Sqlite. Si necesita apuntar a una versión anterior de Android, debería buscar un reemplazo totalmente administrado, como managed-sqlite .
Además, este ejemplo utiliza Mono.Data.Sqlite.dll , que se incluye en el SDK de MonoDroid.
Primero, edite las referencias de ensamblaje del proyecto y agregue una referencia para Mono.Data.Sqlite.dll
y System.Data.dll
.
Segundo, dentro de su código fuente, agregue:
using System.Data;
using Mono.Data.Sqlite;
Finalmente, use el código ADO.NET normal:
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 ();