2017-03-01 83 views
0

我在我的數據庫中有兩條記錄,名字和姓氏,我想得到他們兩個,然後返回一個FullName,在TableView中顯示FullNames。使用Swift3和Xcode8.2.1,FMDB 這裏的getFullName的FUNC如何從FMDB獲取兩個數據並返回一個字符串在swift中組合兩個數據?

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單例類:

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

回答

0

,因爲無論你是爲FirstNameLastName越來越nil您收到此崩潰了,你可以使用ifnull與您的選擇查詢並返回空字符串,如果它爲零。所以改變你的查詢就像這樣。

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()確認結果中包含的記錄或沒有。

+0

有一個錯誤顯示無法用類型爲'(String)'的參數列表調用'executeQuery' –

+0

@GraceYang編輯您的問題,在代碼中出現錯誤。 –

+0

完成後,請看一下,我在swift和FMDB中完全是新手,所以請您更具體或使用通俗易懂的語言。我會非常感謝:) –

相關問題