如何从FMDB中获取两个数据并返回一个字符串,将其中的两个组合成Swift



我的数据库中有两个记录,'firstName和lastname,我想获得两个记录,然后返回一个fullname,在tableview中显示fullname。使用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是S Singleton类:

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
}

和我的学生。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()
}

我有一个线程,就像以下输入图像描述在这里非常感谢您,如果有人可以帮助

将查询编辑为

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

将它们组合到一个字符串中还有另一个错误:在此处输入图像描述

您正在遇到此崩溃,因为您要么获得FirstNameLastNamenil,并且可以将ifnull与选择查询一起使用,如果是nil,则可以返回空字符串。因此,以这种方式更改您的查询。

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

注意:您尚未添加带有查询的WHERE子句,这样就可以为您提供所有记录表单 Student_info表格,如果您检查result.next()以确认结果是否包含记录。<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<</p>

最新更新