gpt4 book ai didi

android - 数据库中的表数(android)

转载 作者:行者123 更新时间:2023-11-30 00:22:23 25 4
gpt4 key购买 nike

我使用 Count_tables 方法来计算数据库中表的数量,但总是返回一个。

@Override
public void onCreate(SQLiteDatabase db) {


db.execSQL("CREATE TABLE abb1 ( _ID INTEGER PRIMARY KEY,name TEXT )");
db.execSQL("CREATE TABLE abb2 ( _ID INTEGER PRIMARY KEY,name TEXT )");
db.execSQL("CREATE TABLE abb3 ( _ID INTEGER PRIMARY KEY,name TEXT )");
}


public int Count_tables(){
int count = 0;
String SQL_GET_ALL_TABLES = "SELECT count(*) FROM sqlite_master WHERE type = 'table' AND name != 'android_metadata' AND name != 'sqlite_sequence'";
Cursor cursor = getReadableDatabase()
.rawQuery(SQL_GET_ALL_TABLES, null);

return cursor.getCount();;

}

最佳答案

您正在使用 select count(*)。这将返回一个游标,其中包含一行和包含数字表的条目。当你对它执行 cursor.getCount() 时,你自然会得到 1。

你应该使用:

int count = cursor.getInt(0) - 获取 count(*) 返回的游标的数字条目而不是行数

String SQL_GET_ALL_TABLES = "SELECT * FROM ... - 获取所有表名作为游标中的行。在此游标上执行 cursor.getCount() 将返回有效值。

关于android - 数据库中的表数(android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46039739/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com