2011-04-21 49 views
1

我正在開發一個使用sqlite的iphone應用程序。在那裏,我有一個方法來檢索部分顯示的表中的值。在iPhone中通過sqlite從數據庫中選擇值

NSString *sqlQuery = [NSString stringWithFormat: @」select * from %@」, tableName]; 
If(sqlite3_prepare_v2(db, [sqlQuery UTF8STRING] , -1, &statement, NULL)== SQLITE_OK) 
{ 
While(sqlite3_step(statement) == SQLITE_ROW) 
{ 
} 
Sqlite3_finalize(statement); 
} 

我的疑問是,在while循環中,我們可以像下面的代碼一樣通過表的索引獲取列的值。

NSString *addressField = [[NSString alloc] initWithUTF8String:(const char *) sqlite3_column_text(statement, 0)]; 
address.text = addressField; 

對於一列,我們可以像這樣檢索。就我而言,我不知道要檢索的列數。在這種情況下,如何遍歷列。請幫助我。 謝謝。

+0

我想你一定知道的列數,或者你的應用程序的工作過程中加入他們??? – 2011-04-21 10:48:16

+0

你可以存儲某些地方的列的數量,然後寫 – 2011-04-21 10:49:03

+0

我認爲while循環用於行數而不是列我的朋友.. – dks1725 2011-04-21 10:49:41

回答

1
NSString *sqlQuery = [NSString stringWithFormat: @」select * from %@」, tableName]; 
If(sqlite3_prepare_v2(db, [sqlQuery UTF8STRING] , -1, &statement, NULL)== SQLITE_OK) 
{ 
While(sqlite3_step(statement) == SQLITE_ROW) 
{ 
int columnCount = YouKnowColumnCount; 
NSMutableArray* array = [[NSMutableArray alloc]init]; 

for(int i=0; i<columnCount ; ++i) { 
    [array addObject:[[NSString alloc] initWithUTF8String:(const char *)sqlite3_column_text(statement, i)]]; 
} 
Sqlite3_finalize(statement); 
} 

像這樣的東西它是否取決於你想要做什麼......

相關問題