Sqlite数据检索问题

问题描述:

我有一个SQLite数据库,当我试图从数据库中获取数据时,我重复获取最后插入的元素。我怎样才能得到所有的元素不重复。Sqlite数据检索问题

我写的代码:

- (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; 
    } 

我检索数据如下:

NSMutableArray *sqlArray = [sqlViewController gettingData]; 

谢谢。

+0

@Prabah上面的方法没有错。你如何访问这些值?你可以请张贴代码吗? – 2011-05-03 05:27:27

+0

确定哪个代码?插入数据na? – Harika 2011-05-03 05:35:31

+0

@Prabah你必须迭代返回的数组。那个代码。 – 2011-05-03 05:36:11

只需全局声明你的数组,而不是在你的方法中声明本地。您的问题将得到解决。