在iphone中通过sqlite从数据库中检索数据

时间:2011-04-18 10:29:10

标签: iphone ios select sqlite nsarray

我正在iphone中开发一个应用程序来通过sqlite访问数据库。我声明了一种从数据库中检索数据的方法。此方法的返回类型是NSArray吗?在sqlite select语句之后我们应该怎么做才能检索数据?

我的意思是在此查询之后。

NSString *selectStmt=[NSString stringWithFormat:@"select * from %@" , tableName];
sqlite3_prepare_v2(db, [selectStmt UTF8STRING] , -1, &statement, NULL);

请帮帮我。

3 个答案:

答案 0 :(得分:1)

NSString *selectStmt=[NSString stringWithFormat:@"select * from %@", tableName];

if( sqlite3_prepare_v2(db, [selectStmt UTF8STRING] , -1,&statement, NULL) == SQLITE_OK ) {
while( sqlite3_step(statement) == SQLITE_ROW ) {

 } 
  }

while 中,您可以从sqlite获取数据并将其添加到数组中!

祝你好运!

答案 1 :(得分:0)

const char *sqlStatement = "your query";

if(sqlite3_prepare_v2(database, sqlStatement, -1, &selectStmt, NULL) == SQLITE_OK) 
{
    // Loop through the results and add them to the feeds array
    while(sqlite3_step(selectStmt) == SQLITE_ROW) 
    {
        NSString *stringField = [NSString stringWithUTF8String:(char *)sqlite3_column_text(selectStmt, 1)];
        NSInteger intField = sqlite3_column_int(selectStmt, 0);
    }
}

sqlite3_finalize(selectStmt);
selectStmt = nil;

这种方式需要从数据库中读取。您可以通过声明类来管理所有检索到的字段。例如,如果从Login表中检索字段,您可以将类作为LoginClass,具有2个属性UserName,Password。创建此类的实例并存储从Db检索的字段值,并将其添加到Array并在任何类似的地方使用它们。

希望这有帮助。

答案 2 :(得分:0)

const char *sql = "select * from stocks";

sqlite3_stmt *output;

if(sqlite3_prepare_v2(dbase, sql, -1, &output, NULL)==SQLITE_OK)
{
[temp removeAllObjects];
[temp1 removeAllObjects];
while(sqlite3_step(output)==SQLITE_ROW)
{

    NSMutableString *str = [NSString stringWithUTF8String:(char  *)sqlite3_column_text(output, 0)];
    [temp1 addObject:str];
    str = [NSString stringWithUTF8String:(char *)sqlite3_column_text(output, 1)];
    [temp addObject:str];
}

}