如何从SQLite表中检索所有行?

时间:2011-06-14 08:32:12

标签: objective-c ios sqlite

你好我们在iphone中做一些数据库操作..请任何人解释我如何从表中检索所有行...在这个例子中它只检索最新输入的数据..

while(sqlite3_step(statement) == SQLITE_ROW)
    {   
        char *field1 = (char *) sqlite3_column_text(statement,0);
        NSString *field1Str = [[NSString alloc] initWithUTF8String: field1];
        char *field2 = (char *) sqlite3_column_text(statement,1);
        NSString *field2Str = [[NSString    alloc] initWithUTF8String: field2];

        NSString *str = [[NSString alloc] initWithFormat:@"%@::%@",field1Str, field2Str];
        textv.text=str;

        [field1Str release];
        [field2Str release];
    }

1 个答案:

答案 0 :(得分:0)

到目前为止,你做得很好。只需在NSMutableArray中添加最终格式化的字符串(str),最后从函数中返回它。

// Take an array to store all string.
NSMutableArray *allRows = [[[NSMutableArray alloc] init] autorelease];

while(sqlite3_step(statement) == SQLITE_ROW)
    {   
        char *field1 = (char *) sqlite3_column_text(statement,0);
        NSString *field1Str = [[NSString alloc] initWithUTF8String: field1];
        char *field2 = (char *) sqlite3_column_text(statement,1);
        NSString *field2Str = [[NSString    alloc] initWithUTF8String: field2];

        NSString *str = [NSString stringWithFormat:@"%@::%@",field1Str, field2Str];
        // textv.text=str; // I don't know why your are mixing your view controller stuff's in database function.
// Add the string in the array.
allRows addObject:str];

        [field1Str release];
        [field2Str release];
    }

// Finally you can return your allRows
return allRows;