gpt4 book ai didi

ios - 如何在 IOS dev 中使用 FMDB 从 SQLite 读取整行数据?

转载 作者:IT王子 更新时间:2023-10-29 06:31:11 26 4
gpt4 key购买 nike

我可以从这样的代码中读取所有列数据 ...

FMResultSet *rs = [db executeQuery:@"SELECT Name, Age, FROM PersonList"];

while ([rs next]) {

NSString *name = [rs stringForColumn:@"Name"];

int age = [rs intForColumn:@"Age"];

}

或者通过这种方式找到一些数据

NSString *address = [db stringForQuery:@"SELECT Address FROM PersonList WHERE Name = ?",@"John"];

但是如果我想要一个包含整行数据的数组(假设我所有的行数据都是一个简单的字符串)

我怎样才能做到这一点?

最佳答案

FMResultSet 类上定义了一个resultDict 方法。我会这样做:

FMResultSet *rs = [db executeQuery:@"SELECT Name, Age, FROM PersonList"];
while ([rs next]) {
NSLog(@"%@", [[rs resultDict] description]);
}

这应该打印出如下内容:

{
Name = bbbbbird1;
Age = 25;
}

PersonList 表中的每一行。现在有两种方法可以将这些值放入数组中。一种是使用 NSDictionaryallValues 方法,但是列的顺序很可能会被破坏。另一种方法是自己构建数组:

FMResultSet *rs = [db executeQuery:@"SELECT Name, Age, FROM PersonList"];
while ([rs next]) {
NSMutableArray* rowData = [[NSMutableArray alloc] init];
for(int i=0; i<[s columnCount]; i++) {
[rowData addObject:[[rs resultDict] objectForKey:[[rs columnNameForIndex:i] lowercaseString]];
}
NSLog(@"%@", [rowData description]);
}

上面应该打印:

(
bbbbbird1,
25
)

希望这就是您要找的。如果您需要在应用程序的许多地方将行作为数组,您可以将此代码放在 FMResultsSet 类别中。

关于ios - 如何在 IOS dev 中使用 FMDB 从 SQLite 读取整行数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8860738/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com