如何从 FMDB 中获取两个数据和 return 一个字符串将其中两个数据组合在 swift 中?
How to get two data from FMDB and return a String combined two of them in swift?
我的数据库中有两条记录,'FirstName 和 LastName,我想得到其中两条,然后 return 一个 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是s singletonclass:
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
您遇到此崩溃是因为您正在为 FirstName
或 LastName
获取 nil
,并且您可以将 ifnull
与您的 select 查询一起使用如果 return 为 nil,则为空字符串。所以像这样更改您的查询。
let result : FMResultSet! = sharedInstance.database!.executeQuery("SELECT ifnull(FirstName,'') as FirstName, ifnull(LastName,'') as LastName FROM Student_info", withArgumentsIn: nil)
注意:您还没有在查询中添加 WHERE
子句,因此这将为您提供 Student_info
table 的所有记录如果您检查 result.next()
以确认结果是否包含记录,这也是连击。
我的数据库中有两条记录,'FirstName 和 LastName,我想得到其中两条,然后 return 一个 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是s singletonclass:
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
您遇到此崩溃是因为您正在为 FirstName
或 LastName
获取 nil
,并且您可以将 ifnull
与您的 select 查询一起使用如果 return 为 nil,则为空字符串。所以像这样更改您的查询。
let result : FMResultSet! = sharedInstance.database!.executeQuery("SELECT ifnull(FirstName,'') as FirstName, ifnull(LastName,'') as LastName FROM Student_info", withArgumentsIn: nil)
注意:您还没有在查询中添加 WHERE
子句,因此这将为您提供 Student_info
table 的所有记录如果您检查 result.next()
以确认结果是否包含记录,这也是连击。