enter code here
ロケーション参照 = "文字列" である Android SQLite データベース テーブルのすべての行を抽出するクエリを作成しようとしています。データベース ヘルパー クラスで次のコードを使用しています。
public Cursor fetchComponentsForLocation(String locationRef) {
Cursor mCursor =
rmDb.query(true, LOCATIONS_TABLE, new String[] {
LOCATION_ID, RUN_LINK, AREA_LINK, INSPECTION_LINK, LOCATION_REF, RACKING_SYSTEM, COMPONENT, POSITION, RISK, ACTION_REQUIRED, NOTES_GENERAL, MANUFACTURER, TEXT1, TEXT2, TEXT3, TEXT4, NOTES_SPEC},
LOCATION_REF + "=" + locationRef, null,
null, null, null, null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}
そして、私は自分の活動でそれを次のように呼び出します。
// Get a Cursor for the list items
Cursor listComponentCursor = rmDbHelper.fetchComponentsForLocation(locationRef);
startManagingCursor(listComponentCursor);
// set the custom list adapter
setListAdapter(new MyListAdapter(this, listComponentCursor));
次に、これを ListAdapter で使用して、リスト ビューを埋めます。他のアクティビティで、id (つまり long) に基づいて行をフェッチしている場合、このコードは正常に機能します。String で試してみると、次のエラーが発生します。
Caused by: android.database.sqlite.SQLiteException: **no such column: g:** , while compiling: SELECT DISTINCT _id, run_link, area_link, inspection_link, location_reference, racking_system, component, position, risk, action_required, notes_general, manufacturer, text1, text2, text3, text4, notes_spec FROM location_table WHERE location_reference=g
ご覧のとおり、この場合は String = 'g' ですが、データを見る代わりに 'g' という列を探しているようです!
これが長いのに文字列では機能しない理由が非常に混乱しています。いつものように感謝します。