Sqlite3更新查询在ios应用程序中不工作
我试图在单击按钮时更新表中的一列 问题是代码没有给出任何异常,但它没有更新表 当视图控制器再次加载时,它将显示旧值,而不是更新的值 更新数据库的代码附在下面Sqlite3更新查询在ios应用程序中不工作,ios,database,sqlite,Ios,Database,Sqlite,我试图在单击按钮时更新表中的一列 问题是代码没有给出任何异常,但它没有更新表 当视图控制器再次加载时,它将显示旧值,而不是更新的值 更新数据库的代码附在下面 @try { if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) { NSString *sqlStatement = @"UPDATE messagesTable SET Favorite = 1 where Messag
@try {
if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {
NSString *sqlStatement = @"UPDATE messagesTable SET Favorite = 1 where MessageID=";
sqlStatement = [sqlStatement stringByAppendingString:msgId];
NSLog(@"sql statement: %@", sqlStatement);
const char *sql = [sqlStatement UTF8String];
int result = sqlite3_prepare_v2(database, sql, -1, &compiledStatement, NULL);
if(result != SQLITE_OK) {
NSLog(@"Prepare-error #%i: %s", result, sqlite3_errmsg(database));
}
// Release the compiled statement from memory
sqlite3_finalize(compiledStatement);
}
sqlite3_close(database);
}
@catch (NSException *exception) {
NSLog(@"Name: %@",exception.name);
NSLog(@"Reason: %@",exception.reason);
}
@finally {
}
欢迎提出任何建议- 您没有调用执行更新的sqlite3\u步骤。在sqlite3_准备完成之后和sqlite3_完成之前,您需要以下内容:
if (sqlite3_step(compiledStatement) != SQLITE_DONE)
NSLog(@"%s: step error: %s", __FUNCTION__, sqlite3_errmsg(database));
这是一个需要解决的简单问题。如果sqlite函数没有返回sqlite\u OK,则报告从sqlite3\u errmsg返回的错误消息。这就是它的目的,告诉你哪里出了问题。是的,从SQLite调用捕获异常没有真正的意义。一切都是用返回码和错误码来完成的;SQLite API是基于C而不是Objto-C的,所以它说它会抛出ObjyE-C异常或C++异常呢?