如何获取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