如何从iphone中的数据库中检索特定列

时间:2011-10-04 08:09:04

标签: iphone objective-c

在我的项目中我正在使用数据库。那里有近365个问题。所以我想得到特定日期的特殊问题。我使用下面的代码从数据库中获取一个qusestion。

-(void)print{
    sqlite3_stmt *statement;


   // SELECT * from light where rowid = %i",1
        qsql=[NSString stringWithFormat:@"Select * from ishh where col_1 = '365'"];


        if(sqlite3_prepare_v2(database, [qsql UTF8String], -1, &statement, NULL) == SQLITE_OK) {
            NSLog(@"%dsssssssssssssss",sqlite3_step(statement));
            NSLog(@"%ddddddddddddddddddddd", (SQLITE_ROW));
            NSString *Q_NO = [[NSString alloc] initWithUTF8String:(char *)sqlite3_column_text(statement, 1)];
            NSLog(@"%@ gg",Q_NO);

当我使用上面的代码时,它正在从数据库打印正确的问题。当我给出类似qsql = [NSString stringWithFormat:@“select * from ishh where col_1 ='1'”]的语句时;它没有提出问题。 但是当我使用下面的代码时,它不是从数据库中获取的。

-(void)print{
    sqlite3_stmt *statement;

   // SELECT * from light where rowid = %i",1
        qsql=[NSString stringWithFormat:@"Select * from ishh where col_1 = '1'"];


        if(sqlite3_prepare_v2(database, [qsql UTF8String], -1, &statement, NULL) == SQLITE_OK) {
            NSLog(@"%dsssssssssssssss",sqlite3_step(statement));
            NSLog(@"%ddddddddddddddddddddd", (SQLITE_ROW));
            NSString *Q_NO = [[NSString alloc] initWithUTF8String:(char *)sqlite3_column_text(statement, 1)];
            NSLog(@"%@ gg",Q_NO);
            while (sqlite3_step(statement) == (SQLITE_ROW))
            { 
                NSLog(@" iolo");
                 NSString *Q_NO = [[NSString alloc] initWithUTF8String:(char *)sqlite3_column_text(statement, 1)];
                //NSString *Q_NO = [[NSString alloc] initWithString:[NSString stringWithFormat:@"%i",sqlite3_column_int(statement, 0)]];

                NSLog(@"%@ gg",Q_NO);


            }  
            sqlite3_reset(statement);

        }
    sqlite3_finalize(statement);
    }

             Can anyone tell me where im going wrong.Thanks in advance.

1 个答案:

答案 0 :(得分:0)

-(void)print{
    sqlite3_stmt *statement;
    qsql=[NSString stringWithFormat:@"Select * from ishh where col_1 = '1'"];

    if(sqlite3_prepare_v2(database, [qsql UTF8String], -1, &statement, NULL) == SQLITE_OK) {
        while (sqlite3_step(statement) == (SQLITE_ROW))
        { 
            char *field0 = (char *)sqlite3_column_text(statement, 0);
            char *field1 = (char *)sqlite3_column_text(statement, 1);
            NSString *Q_NO = nil;
            if(field0!=NULL){
                Q_NO = [[NSString alloc] initWithUTF8String:field0];
            }
            NSString *Q_NO1 = nil;
            if(field1!=NULL){
                Q_NO1 = [[NSString alloc] initWithUTF8String:field1];
            }
            NSLog(@"%@ %@",Q_NO, Q_NO1);

            [Q_NO release];
            [Q_NO1 release];
        }  
    }
    sqlite3_finalize(statement);
}