誰かがMonodroidでsqliteを使用する例を教えてもらえますか?1つも見つかりませんでした。
13650 次
1 に答える
36
明らかに、SQLiteデモをApiDemoサンプルに追加する必要があります。
それがいつ起こるかわからないので、ここに速くて汚いバージョンがあります:
ただし、次のコードを使用するには、Mono.Data.Sqliteを使用するためにAndroid2.2以降をターゲットにする必要があります。以前のAndroidバージョンをターゲットにする必要がある場合は、managed-sqliteなどの完全に管理された代替品を調べる必要があります。
さらに、この例では、MonoDroidSDKに含まれているMono.Data.Sqlite.dllを使用しています。
まず、プロジェクトアセンブリ参照を編集し、との参照を追加し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 ();
于 2011-02-09T13:50:25.157 に答える