-1

在这个非常简单的iPad 应用程序中,我试图将记录插入到数据库中的表中,然后检索它们。插入操作完成但数据库没有变化,我看不出问题出在哪里。

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

谢谢你。

4

1 回答 1

0

我看到两个sqlite3_open命令,一个在Documents文件夹中打开数据库,另一个在包中打开它。前者在Documents从那里打开之前正确地将数据库从捆绑包复制到。但显然,当您随后打开捆绑包中的副本时,您在该数据库中所做的任何插入都不会反映。两个sqlite3_open命令应该遵循相同的过程:从 bundle 复制到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];
}

我之所以提到它,是因为该错误可能会阻止您查看刚刚插入的记录,当您在其他地方诊断真正的数据库错误时,这会令人困惑。

于 2013-02-17T21:49:59.863 回答