我试图在点击按钮时更新我的表格列中的一个。
问题是代码没有给出任何异常,但它没有更新表。
当视图控制器再次加载时,它会显示旧值,而不是更新一个值。
更新db的代码如下。
@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 {
}
欢迎任何建议。 : - )
答案 0 :(得分:3)
您没有调用执行更新的sqlite3_step
。在sqlite3_prepare
之后和sqlite3_finalize
之前,您需要以下内容:
if (sqlite3_step(compiledStatement) != SQLITE_DONE)
NSLog(@"%s: step error: %s", __FUNCTION__, sqlite3_errmsg(database));