2011-04-21 56 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); 
} 

像这样的东西它是否取决于你想要做什么......

相关问题