插入的数据不会保留,除非我重新启动应用程

时间:2013-04-04 07:21:26

标签: iphone sqlite

我在我的iPhone应用程序中使用SQLITE。在detailedViewController中插入值后,我将使用masterViewController viewWillAppear方法从数据库重新加载数据。但是我无法在那里获得新更新的行,除非我重新启动应用程序。 我正在完成编译的声明并在INSERT之后关闭数据库。

sqlite3_finalize(compiledStatement);
sqlite3_close(database);

关于我可能做错事的任何指示?

if(sqlite3_open([dbPath UTF8String], &database) == SQLITE_OK) {
        const char *sqlStatement = "SELECT * FROM MYCAR1";
        sqlite3_stmt *compiledStatement;
        if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) {

            while(sqlite3_step(compiledStatement) == SQLITE_ROW) {
                //...getting data from compiled statements...

                MyCar *car=[[MyCar alloc] initWithVIN:vin.intValue andMake:make andModel:model andYear:year andColor:color andImageData:image];
                [myArray addObject:car];
            }
        }
        sqlite3_finalize(compiledStatement);
        carList=myArray;
    }
    sqlite3_close(database);

    [self.tableView reloadData];

1 个答案:

答案 0 :(得分:0)

我添加了精确的选择代码,这对我有用。尝试将其与您的代码进行比较并找出错误。

sqlite3 *database;

if(sqlite3_open([databasePath UTF8String], &database)==SQLITE_OK)
{

    NSString *querySql=[NSString stringWithFormat:@"Select * from xxx"];

    const char *sqlStatement=[querySql UTF8String];

    sqlite3_stmt *compiledStatement;

    if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) {
        // Loop through the results and add them to the your array

        while(sqlite3_step(compiledStatement) == SQLITE_ROW)  {
           //get the data from db here                


        }

        sqlite3_finalize(compiledStatement);
    }

    sqlite3_close(database);