iPhone App从Sqlite3数据库读取数据

时间:2011-10-20 19:26:39

标签: ios sqlite

我使用以下代码从Sqlite3数据库中读取行。

if(sqlite3_open([[AppHelper getDatabasePath] UTF8String], &database) == SQLITE_OK)
{
    const char *sqlStatement = "select * from customers";
    sqlite3_stmt *compiledStatement; 

    if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) 
    {
        while(sqlite3_step(compiledStatement) == SQLITE_ROW) 
        {
            NSString *firstName = [NSString stringWithUTF8String:(char *) sqlite3_column_text(compiledStatement, 1)];

            NSLog(@"%@",firstName);
        }
    }

    sqlite3_finalize(compiledStatement); 
}

sqlite3_close(database); 

代码不会进入if(sqlite3_prepare_v2 ....。条件。

谁能告诉我我做错了什么?我将.sql文件放在我的文档目录中,它包含一条记录。

更新1:

我在模拟器中运行应用程序,并将myDatabase.sql文件放在Supporting Files文件夹中。

更新2:

错误是“没有这样的表客户”,但我可以看到我在数据库中有customer表。我使用FireFox Sqlite Manager查看customers表。

2 个答案:

答案 0 :(得分:1)

解决方案是关闭/重置模拟器,因为模拟器挂在空数据库上。重置模拟器内容后,每个人都重新开始工作!

答案 1 :(得分:0)

哦,是的,当你更改sqlite文件时,你总是需要删除应用程序并重新安装。或者,如果要升级新表,可以“更改表”旧文件或将所有数据移动到新文件。