在这个非常简单的 iPad应用程序中,我试图将记录插入数据库中的表中,然后检索它们。插入操作已完成,但数据库中没有任何更改,我无法查看问题所在。
这是包含数据库的项目。 http://www.4shared.com/zip/qTmrrpcc/ghadeer1.html
谢谢。
答案 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可能会阻止你看到你刚刚插入的记录,这在你在别处诊断真正的数据库错误时会让人感到困惑。