NuGetで「sqlite-net-pcl」をプロジェクトに追加する
sqlite-net-pclをインストールする
データベーステーブルのクラスを作成する
例:class Book
public class Book
{
[PrimaryKey, AutoIncrement]
public int ID { get; set; }
public string Text { get; set; }
public DateTime Date { get; set; }
}
参照:C# SQLite クラス内の属性 Attributes
データベース用のクラスを作成する
例:TestDatabaseクラスの作成
データベースに空のBookテーブルを作成する
public class TestDatabase
{
readonly SQLiteAsyncConnection _database;
public TestDatabase(string dbPath)
{
_database = new SQLiteAsyncConnection(dbPath);
// _database.CreateTableAsync<Book>().Wait();
}
// get
public Task<List<Book>> GetBookTable()
{
return _database.Table<Book>().ToListAsync();
}
// delete
public async Task DeleteBookTable()
{
await _database.DeleteAllAsync<Book>();
}
// INSERT
public async Task InsertBookTable(List<Book> bookList)
{
await _database.InsertAllAsync(bookList);
}
}
Appクラスの編集
App.xaml.csにコードを追加する
※外部ストレージのPathを「/storage/emulated/0」とする
※参考:Xamarin 外部ストレージのPathを取得する(Android)
public partial class App : Application
{
static TestDatabase database;
public static TestDatabase Database
{
get
{
if (database == null)
{
database = new TestDatabase(Path.Combine("/storage/emulated/0", "Test.db"));
}
return database;
}
}
・・・・・・・・・・
}
Databaseの使用
TestDatabase database = App.Database;
AndroidManifest.xmlのアクセス許可
- ソリューションエクスプローラーでAndroidプロジェクトを右クリック→「プロパティ」
- 「Androidマニフェスト」タブを開く
- 必要なアクセス許可で「WRITE_EXTERNAL_STORAGE」をチェックする
アプリの権限でのアクセス許可
- スマホの「設定」→「アプリと通知」→「アプリ情報」インストールしたアプリのアプリ情報を開く
- 「権限」をタップ
- ストレージをオンにする
参考:XamarinでSQLiteを利用するXamarin SQLite (C#)