无法更新sqlite3中的列值

时间:2012-09-11 07:15:11

标签: ios cocoa-touch sqlite

我是iPhone编程的新手,并希望有人能够帮助我解决我几天来一直试图修复的问题。我创建了一个数据库和一个表。在我的程序中,它包含5个字段,我将两个字段设置为零。后来我将这些字段更新为一个目的。但问题是我无法将字段值设置为1。我将粘贴下面的代码:

NSString *querySQL = [NSString stringWithFormat: @"UPDATE TODOLIST_03 SET DELETEROW ='1' WHERE TASK=\"%@\"", cellText1];

const char *query_stmt = [querySQL UTF8String];

if (sqlite3_prepare_v2(TODOLIST_03_DB, query_stmt, -1, &statement, NULL) == SQLITE_OK)
{   
    if (sqlite3_step(statement) == SQLITE_ROW)
    {
        .........   
    }
}

任何人都可以告诉我查询中的错误是什么?

2 个答案:

答案 0 :(得分:0)

尝试以下:

const char *sqlQuery="UPDATE TODOLIST_03 SET DELETEROW ='1' WHERE TASK= ?";

if(sqlite3_prepare_v2(database, sqlQuery,-1, &queryStatement, NULL) == SQLITE_OK)
{   
    sqlite3_bind_text(queryStatement, 1, [cellText UTF8String], -1, NULL);     
}

答案 1 :(得分:0)

您将数据库文件放在哪条路径上?如果将数据库文件放在与项目相同的路径上,则无法写入,您应该将其放在沙箱中,例如NSHomeDocument,它是可写的,您可以修改这样的代码来跟踪错误:< / p>

NSError *err;

if (sqlite3_prepare_v2(TODOLIST_03_DB, query_stmt, -1, &statement, &err) == SQLITE_OK)
{   
    if(err)
    {
        // NSLog error or what.
    }
}