如何计算SQLITE中表的列数?

时间:2010-11-29 06:24:07

标签: android sqlite

如何计算Android中sqlite数据库中表格中的列数?

5 个答案:

答案 0 :(得分:9)

query会返回Cursor,其中包含getColumnCount()等方法。

答案 1 :(得分:6)

您可以使用pragma table_info(foo_table)并计算返回的行数

答案 2 :(得分:2)

这是代码,它运行完美,没有任何错误。

public Cursor getAllTitles(){
   return db.query(DATABASE_TABLE, new String[] {
        KEY_ROWID,KEY_ISBN,KEY_TITLE,KEY_PUBLISHER},
        null,null,null,null,null);
}

现在在onCreate()方法中创建以下对象,以调用getAllTitles()方法。

Cursor c = db.getAllTitles();
c.getColumnCount(); //this line will give the number of columns in table.

答案 3 :(得分:1)

你走了!

-(NSInteger)dbFieldCount:(NSString *)dbname
{
    NSString *query = [NSString stringWithFormat:@"PRAGMA table_info(%@)",dbname];
    const char *query2 = [query UTF8String];
    NSInteger nFields =0;
    sqlite3_stmt *compiledStatement;
    if(sqlite3_prepare_v2(database, query2, -1, &compiledStatement, NULL) == SQLITE_OK) 
    {
         while(sqlite3_step(compiledStatement) == SQLITE_ROW)
         {
               nFields++;
         }
    }
    sqlite3_finalize(compiledStatement);
    return nFields;
}

答案 4 :(得分:0)

您可以使用SELECT count() FROM PRAGMA_TABLE_INFO('your_table');

参考: https://www.sqlite.org/pragma.html#pragfunc