嗨,我正在使用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];


所以我输出到这个程序是

萨钦·拉胡尔·德拉维德(Sachin Rahul Dravid)

但是当我尝试将数据插入数据库时​​,
我用下面的编码

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


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

萨钦·拉胡尔(Sachin Rahul)Dravid Balaji R

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

萨钦·拉胡尔·德拉维德(Sachin Rahul Dravid)

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

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

最佳答案

您正在尝试写入不允许的应用程序捆绑包目录。您必须将启动数据库复制到用户的Documents目录中,并将副本的路径传递到FMDB initWithPath:中。看一下iOS Application Programming Guide。看一下CoreDataBooks示例代码。 App Delegate在persistentStoreCoordinator方法中具有代码,您可以将其用作实现的指南。

关于iphone - 在SQLite中插入数据时遇到问题?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3477403/

10-10 20:45
查看更多