【发布时间】:2014-08-06 22:47:20
【问题描述】:
我想像这样一次更新sqlite表中的一条记录。
travellName : self.savedName -> self.editedName
货币:self.savedCurrency -> self.editedCurrency
速率:self.savedRate -> self.editedRate
startBudget : self.savedBudget -> self.editedBudget
leftAssets : self.savedLeftAssets -> self.editedLeftAssets
在此处输入代码
NSString *qsql = [NSString stringWithFormat:@"UPDATE Travell SET travellName =
'%@' and currency = '%@' and changeRate = '%@' and startBudget = '%@' and
leftBudget = '%@' WHERE travellName = '%@' and currency = '%@' and changeRate =
'%@' and startBudget ='%@' and leftBudget = '%@'", self.editedName,
self.editedCurrency, self.editedRate,self.editedBudget, self.editedLeftAssets,
self.savedName, self.savedCurrency, self.savedRate, self.savedBudget,
self.savedLeftAssets];
if(sqlite3_exec(db, [qsql UTF8String], NULL, NULL, &err) != SQLITE_OK){
sqlite3_close(db);
NSLog(@"Failed to update leftBudget");
}
else{
NSLog(@"Success to update leftBudget");
}
这是我的代码。我有很多领域要一次更新。查询有问题吗??
我检查了变量的所有值,没有问题。 奇怪的是, sqlite3_exec(...) 返回 SQLITE_OK 并且 NSLog(@"Success to update leftBudget") 被执行。但问题是更新表没有正确执行.. 我不知道程序说 SQLITE_OK 但表没有正确更新..
【问题讨论】:
-
您应该使用逗号而不是 AND 分隔要更新的列。例如。 UPDATE Travell SET travellName = '%@',货币 = '%@' 等
-
非常感谢,约翰。你的权利。真可惜……
标签: ios objective-c sqlite