1

您好我正在使用 FMDB 从 SQLITE 数据库中检索数据。

db  = [[FMDatabase alloc] initWithPath:path];   
[db open];  
FMResultSet *fResult= [db executeQuery:@"SELECT * FROM Users"];

aUsers = [[NSMutableArray alloc] init];
while([fResult next])
{
    userData = [fResult stringForColumn:@"Name"];       
    lblUsers.text=[lblUsers.text  stringByAppendingString:userData];
    [aUsers addObject:userData];        
    NSLog(@"The data is %@=",userData);
}   
[db close];
[aUsers release];
[db release];

所以我得到这个程序的输出是

萨钦·拉胡尔·德拉维德

但是当我尝试将数据插入数据库时​​,我使用了以下编码

   [db beginTransaction];
[db executeUpdate:@"insert into users (name) values('Balaji R')" ,nil];
[db commit];

现在我再次从数据库中检索数据。所以我得到了这样的输出

萨钦·拉胡尔·德拉维德·巴拉吉·R

但是当我退出我的应用程序然后再次构建它时,现在我只看到旧记录

萨钦·拉胡尔·德拉维德

插入录制的“Balaji R”消失了!

有人知道我在哪里做错了吗?请告诉我解决方案......

4

1 回答 1

2

您正在尝试写入不允许的应用程序包目录。您必须将起始数据库复制到用户的 Documents 目录,并将副本的路径传递给FMDB initWithPath:Take a look at the iOS Application Programming Guide。查看CoreDataBooks示例代码。App Delegate 在persistentStoreCoordinator方法中有代码,您可以将其用作实施指南。

于 2010-08-16T15:52:01.087 回答