2011-05-03 5 views
0

J'ai une base de données SQLite, et quand je suis en train d'obtenir les données de la base de données, je reçois le dernier élément inséré à plusieurs reprises. Comment puis-je obtenir tous les éléments sans répétition.Problème SQLite Récupération des données

Le code que j'ai écrit:

- (NSMutableArray *) gettingData { 


    sqlDict = [[NSMutableDictionary alloc] init]; 

    membersInfoArray =[[NSMutableArray alloc]init ]; 


    [self checkAndCreateDatabase]; 

    if (sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) 
    { 

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

    sqlite3_stmt *selectstmt; 
    if(sqlite3_prepare_v2(database, sql, -1, &selectstmt, NULL) == SQLITE_OK) 
    { 
     while(sqlite3_step(selectstmt) == SQLITE_ROW) 
     { 


     NSString *prdbcode = [NSString stringWithUTF8String:(char *)sqlite3_column_text(selectstmt, 0)]; 

    [sqlDict setObject:prdbcode forKey:@"Barcode"]; 


    [prdbcode release]; 


     NSString *prdname = [NSString stringWithUTF8String:(char *)sqlite3_column_text(selectstmt, 1)]; 


    [sqlDict setObject:prdname forKey:@"ProductName"]; 

     [prdname release]; 
     NSString *prdDesc = [NSString stringWithUTF8String:(char *)sqlite3_column_text(selectstmt, 2)]; 
     [sqlDict setObject:prdDesc forKey:@"ProductDescription"]; 
     [prdDesc release]; 
     NSString *prdstatus = [NSString stringWithUTF8String:(char *)sqlite3_column_text(selectstmt, 3)]; 

    [sqlDict setObject:prdstatus forKey:@"ProductStatus"]; 
    [prdstatus release]; 
    [membersInfoArray addObject:sqlDict]; 
    [sqlDict release]; 

     } 

    } 

    sqlite3_finalize(selectstmt); 

    } 

    sqlite3_close(database); 
    return membersInfoArray; 
    } 

Je suis récupérer les données comme suit:

NSMutableArray *sqlArray = [sqlViewController gettingData]; 

Merci.

+0

@Prabah Rien de mal dans la méthode ci-dessus. Comment accédez-vous aux valeurs? Pouvez-vous s'il vous plaît poster ce code aussi? –

+0

ok quel code ?? insertion de données na? – Harika

+0

@Prabah Vous devez itérer le tableau retourné. Ce code. –

Répondre

1

Il suffit de déclarer votre tableau globalement au lieu de déclarer localement dans votre méthode. Votre problème sera résolu.

Questions connexes