2011-05-03 180 views
0

我有一個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

回答

1

只需全局聲明你的數組,而不是在你的方法中聲明本地。您的問題將得到解決。