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

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

17 голосов
/ 09 февраля 2011

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

1 Ответ

36 голосов
/ 09 февраля 2011

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

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

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

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

Сначала отредактируйте ссылки на сборки вашего проекта и добавьте ссылку для 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 ();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...