如何获取Android sqlite数据库中的所有表名?

我已经尝试过此代码

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

c.moveToFirst();

while(!c.isAfterLast()){

Toast.makeText(activityName.this, "Table Name=> "+c.getString(0),

Toast.LENGTH_LONG).show();

}

但这会引发错误:

"android.database.sqlite.SQLiteException: no such table: sqlite_master(code 1):, while 

compiling: SELECT name FROM sqlite_master WHERE type='table'"

如何获取所有表名?

回答:

经过检查,测试和运行。试试这个代码:

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

if (c.moveToFirst()) {

while ( !c.isAfterLast() ) {

Toast.makeText(activityName.this, "Table Name=> "+c.getString(0), Toast.LENGTH_LONG).show();

c.moveToNext();

}

}

我假设,在一行的某个点上,您将获取一个 表名 列表,以可能以a ListView或某种形式显示。不只是展示吐司。

未经测试的代码。 这就是我的首要想法。在生产应用中使用它之前,请先进行测试。;-)

在这种情况下,请考虑对上面发布的代码进行以下更改:

ArrayList<String> arrTblNames = new ArrayList<String>();

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

if (c.moveToFirst()) {

while ( !c.isAfterLast() ) {

arrTblNames.add( c.getString( c.getColumnIndex("name")) );

c.moveToNext();

}

}

以上是 如何获取Android sqlite数据库中的所有表名? 的全部内容, 来源链接: utcz.com/qa/417383.html

回到顶部