2011-06-14 32 views
1

你好,大家好我在iphone做一些數據庫操作..請任何人都可以解釋我如何檢索在這個例子從table..here所有行只最新輸入的數據retreives ..如何從SQLite表中檢索所有行?

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

回答

0

你到目前爲止所做的都是正確的。只要繼續添加最終格式化的字符串(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; 
+0

ok然後如何顯示數據 – Ram 2011-06-14 09:26:06

+0

所以這個數據庫函數會返回所有的行。它是一個數組。你可以使用[allRows objectAtIndex:someIndex]來訪問它的內容; – 2011-06-14 12:47:19