插入记录时不更改sqlite数据库

时间:2013-02-17 20:55:44

标签: ios sqlite

在这个非常简单的 iPad应用程序中,我试图将记录插入数据库中的表中,然后检索它们。插入操作已完成,但数据库中没有任何更改,我无法查看问题所在。

这是包含数据库的项目。 http://www.4shared.com/zip/qTmrrpcc/ghadeer1.html

谢谢。

1 个答案:

答案 0 :(得分:0)

我看到两个sqlite3_open命令,一个用于打开Documents文件夹中的数据库,另一个用于打开捆绑包中的数据库。前者正在将数据库从包中正确地复制到Documents,然后再从中打开它。但是,当您随后打开捆绑包中的副本时,很明显不会反映您在该数据库中执行的任何插入操作。两个sqlite3_open命令都应遵循相同的过程:从捆绑包复制到Documents(如果尚未存在),然后在Documents中打开数据库。


您的getschools方法也有错误。它说:

- (IBAction)getschools:(id)sender {
    static NSInteger currentIndex = 0;
    if (++currentIndex == [self.schools count]) {
        currentIndex=0;
    } else {
        school *aschool = (school *) [self.schools objectAtIndex: currentIndex];
        [self.idview setText:aschool.schoolid];
        [self.nameview setText:aschool.schoolname];
    }
}

应该说:

- (IBAction)getschools:(id)sender {
    static NSInteger currentIndex = 0;
    if (++currentIndex == [self.schools count]) {
        currentIndex=0;
    } 

    school *aschool = (school *) [self.schools objectAtIndex: currentIndex];
    [self.idview setText:aschool.schoolid];
    [self.nameview setText:aschool.schoolname];
}

我只提到它,因为这个bug可能会阻止你看到你刚刚插入的记录,这在你在别处诊断真正的数据库错误时会让人感到困惑。