如何在IOS dev中读取带有FMDB的SQLite中的整行数据?

bbb*_*rd1 4 sqlite fmdb ios

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

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

while ([rs next]) {

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

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

}
Run Code Online (Sandbox Code Playgroud)

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

NSString *address = [db stringForQuery:@"SELECT Address FROM PersonList WHERE Name = ?",@"John"];
Run Code Online (Sandbox Code Playgroud)

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

我怎么能实现那个......?

谢谢你的帮助!

??????????????

law*_*cko 7

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

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

这应该打印如下:

{
    Name = bbbbbird1;
    Age = 25;
}
Run Code Online (Sandbox Code Playgroud)

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

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]);
}
Run Code Online (Sandbox Code Playgroud)

上面应该打印:

(
    bbbbbird1,
    25
)
Run Code Online (Sandbox Code Playgroud)

我希望这就是你要找的东西.如果需要在应用程序的许多位置将行作为数组,则可以将此代码放在FMResultsSet类别中.