2012-09-11 44 views
1

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

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) 
    { 
     ......... 
    } 
} 

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

+0

首先尝试执行这个查询到'SQLite Manager'中,如果它的更新可能在代码或查询中有错误!试试这个查询以及'NSString * querySQL = [NSString stringWithFormat:@“UPDATE TODOLIST_03 SET DELETEROW = 1 WHERE TASK = \”%@ \“”,cellText1];' – Hemang

+0

好吧,我明白了。其实这是其他代码中的错误。无论如何谢谢你的回应.. :) - @Hemang – Div

+0

很高兴帮助@Div!快乐的编码! :) – Hemang

回答

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);  
} 
0

你把什么路径数据库文件在哪里?如果你把数据库文件的路径相同的项目不能写,你应该把它放在沙盒例如NSHomeDocument它在哪里写的,且可以修改这样的代码跟踪误差:

NSError *err; 

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