2011-02-08 3 views
17

Может ли кто-нибудь указать мне пример использования sqlite с Monodroid? Я не смог найти ни одного.Нужен пример sqlite с Monodroid

+0

Если вам нужны советы по работе с SQLite я также написал сообщение в блоге здесь: http://www.elucidsoft.com/blog/2011/12/31/mono-android-working-with-sqlite/ – emalamisura

ответ

36

Мне явно нужно добавить демоверсию SQLite в образец ApiDemo.

Поскольку я не знаю, когда это произойдет, вот быстрые и грязные версии:

Однако использовать следующий код, который вы должны предназначаться для Android 2.2 или более поздней версии, чтобы использовать Mono.Data. Sqlite. Если вам нужно настроить таргетинг на более раннюю версию Android, вы должны изучить полностью управляемую замену, такую ​​как managed-sqlite.

Кроме того, этот пример использует Mono.Data.Sqlite.dll, который включен в SDK MonoDroid.

Сначала отредактируйте свои ссылки на сборку проекта и добавьте ссылку для Mono.Data.Sqlite.dll и System.Data.dll.

Во-вторых, в исходном коде, добавьте:

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

Наконец, использование вы нормальный код 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

Большое спасибо! Это недостающее звено для меня. – basheps

+1

+1 на Спасибо. Это и недостающее звено для меня. –

+0

System.IO не существует в Mono Для android .. Как мы можем использовать Mono для Android-приложений? – dinesh