Подтвердить что ты не робот

Нужен пример sqlite с Monodroid

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

4b9b3361

Ответ 1

Мне явно нужно добавить демоверсию 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 ();