Swift SQLite如何从表中获取row.count?

时间:2018-11-26 10:23:26

标签: ios swift sqlite

在我的Xcode项目中,我使用SQLite保存用户订单列表

我的问题是我的数据是否像这样 enter image description here

有没有像table.count这样的方式,我可以获得多少行?

这是我的插入方法 我希望可以是这样

只需创建一个模型,然后直接使用

func insert(_ tableName :String, rowInfo :[String:String]) -> Bool {
    var statement :OpaquePointer? = nil
    let sql = "insert into \(tableName) "
        + "(\(rowInfo.keys.joined(separator: ","))) "
        + "values (\(rowInfo.values.joined(separator: ",")))"

    if sqlite3_prepare_v2(self.db, sql.cString(using: String.Encoding.utf8), -1, &statement, nil) == SQLITE_OK {
        if sqlite3_step(statement) == SQLITE_DONE {
            return true
        }
        sqlite3_finalize(statement)
    }

    return false
} 

2 个答案:

答案 0 :(得分:0)

如果您使用的是纯SQLite,则必须使用SQL请求从数据库中获取任何信息。在您的情况下,请求将是这样的:

"SELECT COUNT(*) FROM \(tableName)"

但是为什么不使用CoreData?它不仅拥有许多使您的数据访问变得更容易的必要方法,而且还提供了大量用于提高速度和内存的优化代码(在我看来,这是最重要的)。

答案 1 :(得分:0)

let query = "select count(*) from tableName;"
if sqlite3_prepare(self.db, query, -1, &queryStatement, nil) == SQLITE_OK{
      while(sqlite3_step(queryStatement) == SQLITE_ROW){
           let count = sqlite3_column_int(queryStatement, 0)
           print("\(count)")
      }

}

上面的代码将为您提供表的行数。