我该如何从数据库检索所有表?(Android,SQLite)

30 浏览
0 Comments

我该如何从数据库检索所有表?(Android,SQLite)

这个问题已经有答案了:

可能的重复:

如何列出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();

因此,对于每个新标题,我都会创建一个新表。但是,然后我需要将所有这些表打印出来,在新的Activity中作为列表或类似的内容。但是我不知道如何从数据库中获取所有表格。

我找到了这个命令:

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

但如果我知道它的名称,它只适用于一个表,我需要获取所有表格和它们的数据。

你能帮我吗?

admin 更改状态以发布 2023年5月24日
0
0 Comments

使用以下内容运行查询:

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);

0