3

http://timheuer.com/blog/archive/2012/08/07/updated-how-to-using-sqlite-from-windows-store-apps.aspxおよびhttp://wp.qmatteoqを参照しています。 com/using-sqlite-in-your-windows-8-metro-style-applications/

私の知る限り、sqlite-net外部キーは適切にサポートされていません。したがって、テーブルにマップするクラスを作成する代わりに、次の方法でテーブルを作成していました。

    public static readonly String PROFILE_TABLE_CREATE = "create table if not exists " 
            + PROFILE_TABLE_NAME + "(" 
            + COLUMN_PROFILE_ID + " integer primary key autoincrement, "
            + COLUMN_TIMESTAMP + " integer not null, "
            + COLUMN_PROFILE_NAME + " text not null, "
            + COLUMN_AGE + " integer not null, "
            + COLUMN_GENDER + " integer not null"
            + ");";

    private async void CreateDatabase()
    {
        SQLiteAsyncConnection conn = new SQLiteAsyncConnection(DATABASE_NAME);
        await conn.ExecuteAsync(PROFILE_TABLE_CREATE);
    }

それでは、クエリを実行したいと思います。たとえば、特定のテーブルには何行ありますか?

sqlite table windows 8 app からの列名の読み取りのQueryAsyncように実行できます。ただし、テーブルにマップするクラスがありません。

Java では、次のように生のクエリを実行できます。

    String sql =  "select count(*) from " + tableName + " where " + HistorySQLiteOpenHelper.COLUMN_FK_TIMESTAMP + " = " + profileTimestamp;
    Cursor cursor = database.rawQuery(sql, null);

C#Windowsストアアプリでどうすればできますか?

4

1 に答える 1

8

カウントなどの単一の値を取得するには、次を使用しますExecuteScalarAsync

SQLiteAsyncConnection conn = new SQLiteAsyncConnection(DATABASE_NAME);
int profileCount = await conn.ExecuteScalarAsync<int>("select count(*) from " + PROFILE_TABLE);
于 2012-11-21T12:51:20.643 に答える