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];
谢谢。
答
只需全局声明你的数组,而不是在你的方法中声明本地。您的问题将得到解决。
@Prabah上面的方法没有错。你如何访问这些值?你可以请张贴代码吗? – 2011-05-03 05:27:27
确定哪个代码?插入数据na? – Harika 2011-05-03 05:35:31
@Prabah你必须迭代返回的数组。那个代码。 – 2011-05-03 05:36:11