2011-03-21 61 views
0

我需要將列值更新到表中。表值不更新使用更新語句

爲我的代碼,

NSString *sql_str = [NSString stringWithFormat:@"update %@ Set Quantiry = %@ Where ItemName = %@", tableName,quantity,itemname]; 
    const char *sqlStatement = (char *)[sql_str UTF8String]; 
    NSLog(@"query %s",sqlStatement); 
    sqlite3_stmt *compiledStatement; 

    sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL); 

    sqlite3_close(database); 

在控制檯中顯示的查詢update allcategories Set Quantiry = 11 Where ItemName = Bananas

但在表中的值不被更新。

什麼錯,可以幫助我的任何人。

謝謝你提前。

回答

0

您在sqlite3_prepare_v2之後缺少一行。你必須在此之後使用sqlite3_step()。使用下列內容:

NSString *sql_str = [NSString stringWithFormat:@"update %@ Set Quantiry = %@ Where ItemName = %@", tableName,quantity,itemname]; 
const char *sqlStatement = (char *)[sql_str UTF8String]; 
NSLog(@"query %s",sqlStatement); 
sqlite3_stmt *compiledStatement; 

if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) { 
sqlite3_step(compiledStatement); 
} 

sqlite3_close(database); 

希望幫助.. :)