次のコードを実行しています...
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();
以下のデータベースブラウザに示されているように、データベースで(データベースビューアーにはアンダースコアが正しく表示されないという不具合があります - 無視してください):
出力は次のとおりです。
>>>>> 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!