-2

重複の可能性:
SQLite データベース ファイル内のテーブルを一覧表示するにはどうすればよいですか

Android デバイスを使用して単純なデータベースを作成するための単純なインターフェイスを作成しようとしています。たとえば、私のホーム コレクションの映画をデータベースに挿入するプログラムです。最初から間違っているかもしれませんが、これが私の試みです:

ここでは、フィールドからデータを取得し、それらを新しいテーブルに挿入します。

        EditText title = (EditText)findViewById(R.id.Title); 
        String Title = title.getText().toString();

        EditText d = (EditText)findViewById(R.id.director); 
        String Director = d.getText().toString();

                SQLiteDatabase db = openOrCreateDatabase("Films", MODE_PRIVATE, null);
        db.execSQL("CREATE TABLE IF NOT EXISTS " + Title + " (Title VARCHAR, Director VARCHAR);");
        db.execSQL("INSERT INTO " + Title + "(Title) VALUES('" + Title + "');");
        db.execSQL("INSERT INTO " + Title + " (Director) VALUES('" + Director + "');");
        db.close();

そのため、新しいタイトルごとに新しいテーブルを作成します。しかし、これらのテーブルをすべて、新しいアクティビティでリストなどとして印刷する必要があります。しかし、データベースからすべてのテーブルを取得する方法がわかりません。

コマンドを見つけました:

SQLiteDatabase db = openOrCreateDatabase("Films", MODE_PRIVATE, null);
Cursor c = db.rawQuery("SELECT * FROM tablename", null);

しかし、名前がわかっている場合は 1 つのテーブルに対してのみ機能し、必要なのはすべてのテーブルとそれらからデータを取得することです。

私を手伝ってくれますか?

4

1 に答える 1

2

これを使用してクエリを実行します。

Cursor c = db.rawQuery("SELECT * FROM films.sqlite_master WHERE type='table'",null);

編集

これは Android で、rawQuery には既にテーブル名があることを忘れていました。これはうまくいくはずです:

Cursor c = db.rawQuery("SELECT * FROM sqlite_master WHERE type='table'",null);
于 2012-05-13T13:34:40.717 に答える