我如何检索SQLite表中的所有行?

你好我正在做一些数据库操作的iPhone ..请任何人都可以解释我如何检索表中的所有行..在这个例子中,它只检索最新input的数据..

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]; } 

到目前为止,你做得很好。 只要继续添加最终格式化的string(str)在一个NSMutableArray中,并最终从函数返回它。

 // 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;