0

次のコードを実行しています...

    SQLiteDatabase db = getReadableDatabase();
    SQLiteQueryBuilder querything = new SQLiteQueryBuilder();
    String sqlTables = "ZSITESUSES";
    String [] sqlSelect = { "ZUSE_ID"};
    querything.setTables(sqlTables);
    Cursor cursor = querything.query(db, sqlSelect, "ZSITE_ID=1014", null,null, null, null);
    DatabaseUtils.dumpCursor(cursor);
    cursor.moveToFirst();

以下のデータベースブラウザに示されているように、データベースで(データベースビューアーにはアンダースコアが正しく表示されないという不具合があります - 無視してください):

SQLite データベース ブラウザーで表示されるデータベース テーブル

出力は次のとおりです。

 >>>>> Dumping cursor android.database.sqlite.SQLiteCursor@41e679b0
 0 {
    ZUSE_ID=null
 }
 1 {
    ZUSE_ID=null
 }
 2 {
    ZUSE_ID=null
 }
 <<<<<

私はデータベースに非常に不慣れです。カーソルに 3 つのコンポーネントがあるという事実は正しいように見えますが、「ZUSE_ID=null」は間違っているように見えます。そして、cursor.getString(0) を実行すると、答えは間違いなく null になります。

何か案は?

編集: njzk2の提案で、使用するように変更しました

文字列 [] sqlSelect = { "ZSITE_ID","ZUSE_ID","ZUSE_PERCENT","ZSITEUSE_ID" };

対応する出力は次のとおりです。

 >>>>> Dumping cursor android.database.sqlite.SQLiteCursor@41ba4570
 0 {
    ZSITE_ID=1014
    ZUSE_ID=null
    ZUSE_PERCENT=10
    ZSITEUSE_ID=null
 }
 1 {
    ZSITE_ID=1014
    ZUSE_ID=null
    ZUSE_PERCENT=30
    ZSITEUSE_ID=null
 }
 2 {
    ZSITE_ID=1014
    ZUSE_ID=null
    ZUSE_PERCENT=70
    ZSITEUSE_ID=null
 }
 <<<<<

編集:これはすべて非常に奇妙だったので、アプリをアンインストールして再インストールすることにしました-そして見よ-すべてが完全に機能し始めました... arrggghh!

4

2 に答える 2