如何从FMDB获取两个数据并返回一个字符串,其中两个在swift中组合在一起?

时间:2017-03-01 14:27:13

标签: swift3 xcode8 fmdb

我的数据库中有两条记录,'FirstName和LastName,我想得到其中两条,然后返回一个FullName,在tableView中显示FullNames。使用Swift3和Xcode8.2.1,FMDB 这是getFullName的函数

    func getFullName() -> String{

    StudentDataBase.getInstance()
    sharedInstance.database!.open()

    let result : FMResultSet! = sharedInstance.database!.executeQuery("SELECT FirstName, LastName FROM Student_info", withArgumentsIn: nil)
    let fullName  = (result?.string(forColumn: "FirstName"))! + " " + (result?.string(forColumn: "LastName"))!
    return fullName
}

sharedInstance是全局的,StudentDataBase是单例类:

class StudentDataBase : NSObject {

var database: FMDatabase? = nil
var pathToDB: String!

class func getInstance() -> StudentDataBase{

    if((sharedInstance.database) == nil)
    {
        sharedInstance.database = FMDatabase(path: Utility.getPath("data.db"))
    }
    return sharedInstance
}

我的Student.swift就是这样:

import UIKit

//the model class to fetch the data from data.db
class Student : NSObject {

    var studentID: String = String()
    var fstName: String = String()
    var lstName: String = String()
    var phoneNum: String = String()

}

我有一个帖子就像这样enter image description here 非常感谢,如果有人可以提供帮助

将查询编辑成

    let result : FMResultSet! = sharedInstance.database!.executeQuery("SELECT ifnull(FirstName,'') as FirstName, ifnull(LastName,'') as LastName FROM Student_info", withArgumentsIn: nil)

将它们组合成一个字符串还有另一个错误: enter image description here

1 个答案:

答案 0 :(得分:0)

您收到此次崩溃是因为您获得了nilFirstName的{​​{1}},并且您可以将LastName用于您的选择查询并返回空字符串(如果它)没有。所以改变你的查询就像这样。

ifnull

注意:您尚未在查询中添加let result : FMResultSet! = sharedInstance.database!.executeQuery("SELECT ifnull(FirstName,'') as FirstName, ifnull(LastName,'') as LastName FROM Student_info", withArgumentsIn: nil) 子句,因此这将为您提供WHERE表中的所有记录Student_info确认结果是否包含记录。