-1

この非常に単純なiPad アプリケーションでは、データベース内のテーブルにレコードを挿入してから取得しようとしています。挿入操作は完了しましたが、データベースに変更はなく、どこに問題があるのか​​わかりません。

これがデータベースを使用したプロジェクトです。 http://www.4shared.com/zip/qTmrrpcc/gadeer1.html

ありがとうございました。

4

1 に答える 1

0

フォルダー内のデータベースを開くコマンドと、バンドル内sqlite3_openのデータベースを開くコマンドの2 つのコマンドが表示されます。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];
}

バグが原因で、挿入したばかりのレコードが表示されなくなる可能性があるため、これについてのみ言及します。これは、他の場所で本物のデータベースのバグを診断しているときに混乱を招きます。

于 2013-02-17T21:49:59.863 に答える