データベースからすべてのテーブル名を取得してリストに追加する正しい方法は何でしょうか?SQLite、どのようにデータベース内のすべてのテーブル名を取得するには?
final ArrayList<String> dirArray = new ArrayList<String>();
SqlHelper sqlHelper = new SqlHelper(this, "TK.db", null, 1);
SQLiteDatabase DB = sqlHelper.getWritableDatabase();
Cursor c = DB.rawQuery("SELECT name FROM sqlite_master WHERE type='table'", null);
c.moveToFirst();
while (c.isAfterLast() == false) {
dirArray.add("n" + c.getColumnIndex("name"));
c.moveToNext();
}
c.close();
をしかし、それは代わりに私のテーブル名の一部の「android_metadata」を出力:
は今のところそこまでです。クエリーに何か問題があると思われます。
ありがとうございます!
はい、今出力のみ、動作しているようです最初の "android_metadata"として、私はそれを無視するのですか? – Roger
ええ、最初の行を無視するために何かを入れてください..あなたは明示的にそれをチェックするwhileループループの前にc.moveToNext()を置くことさえできます。 – SBerg413