【问题标题】:issue while fetch data from sqlite table从 sqlite 表中获取数据时出现问题
【发布时间】:2020-01-26 09:03:57
【问题描述】:

当用户在线或离线时,我正在使用作品创建应用程序,因此我使用sqlite 数据库,所以当我从表中检索数据时,我无法检索数据,这是我用于获取数据的代码

func get_sub_element_offline_data(){
    self.subelementOfflineData.removeAll()
    let fileURL = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
                .appendingPathComponent("EOBA.sqlite")

    if sqlite3_open(fileURL.path, &db) != SQLITE_OK {
        print("error opening database")
    }
    let queryString = "SELECT * FROM Sub_ElementList_NEW1 WHERE element_id = \(elementID)"
    var stmt:OpaquePointer?

    if sqlite3_prepare(db, queryString, -1, &stmt, nil) != SQLITE_OK{
        let errmsg = String(cString: sqlite3_errmsg(db)!)
        print("error preparing insert: \(errmsg)")
        return
    }
    while(sqlite3_step(stmt) == SQLITE_ROW){  //here while statement not able to execute
        let id = sqlite3_column_int(stmt, 0)
        let element_id = String(cString: sqlite3_column_text(stmt, 1))
        let sub_elements_id = String(cString: sqlite3_column_text(stmt, 2))
        let fk_elements_id = String(cString: sqlite3_column_text(stmt, 3))
        let title = String(cString: sqlite3_column_text(stmt, 4))
        print(id)
        print(element_id)
        print(sub_elements_id)
        print(fk_elements_id)
        print(title)
        subelementOfflineData.append(SubElementOfflineModel(id: Int(id), sub_elements_id: String(describing: sub_elements_id), title: String(describing: title)))
        do {
            let jsonData = try JSONEncoder().encode(subelementOfflineData)
            let jsonString = String(data: jsonData, encoding: .utf8)!
            print(jsonString)
        } catch {
            print(error)

        }
    }
}   

我正在根据元素列表获取数据我检查元素 id 是否存在于同一个表中,但我仍然无法获取数据

所以请帮忙解决这个问题

【问题讨论】:

  • “不能...”,怎么样?您是否收到错误,您是否尝试过调试等?
  • 不,我没有收到任何错误,但是 while 语句没有执行
  • 所以查询没有返回任何行,你检查过elementID id 是否正确设置(可能打印queryString)?
  • 是的,我检查了元素 id 是否正确设置,但即使查询成功执行,我仍然无法返回行,但未返回行
  • 好吧,如果一切正常并且没有返回任何行,那么数据库表中就没有该 id 的行,我们无法为您提供太多帮助。

标签: ios swift database sqlite


【解决方案1】:

我在一个名为 SundeedQLite 的库上工作,它会帮助您完成所有这些工作,请查看并回复任何评论

【讨论】:

    猜你喜欢
    • 2014-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-23
    • 1970-01-01
    • 2012-08-22
    相关资源
    最近更新 更多