Xcode4 如何插入文本字段';使用FMDB方法将数据导入数据库

Xcode4 如何插入文本字段';使用FMDB方法将数据导入数据库,xcode4,fmdb,Xcode4,Fmdb,我有一个5列的数据库。。我应该用文本字段中键入的值更新数据库 -(void)insertData:(int)insGI:(NSString*)insVis:(NSString*)insp4p:(NSString*)insCM:(NSString*)insSC:(NSString*)insCEL { [db beginTransaction]; NSString *stringSQL = [NSString stringWithFormat:@"UPDATE CreateGoal SET Co

我有一个5列的数据库。。我应该用文本字段中键入的值更新数据库

-(void)insertData:(int)insGI:(NSString*)insVis:(NSString*)insp4p:(NSString*)insCM:(NSString*)insSC:(NSString*)insCEL
{

[db beginTransaction];

NSString *stringSQL = [NSString stringWithFormat:@"UPDATE CreateGoal SET Column1 = %@, Column2 = %@, Column3 = %@, Column4 = %@, Column5 = %@ WHERE rowid = %d ", insVis, insp4p, insCM, insSC, insCEL, insGI];
[db executeQuery:stringSQL];
[db commit];
}

使用新值更新表

-(IBAction)someaction:(id)sender

{

 sc = text1.text;

NSLog(@"\n \n \n SC = %@",sc);
printf("\n \n \n HHHHHHHHHHH");
p4p = text2.text;
vis = text3.text;
cm = text4.text;
cel = text5.text;
 [[DBManager getInstance]insertData:gid:vis:p4p:cm:sc:cel]; 

}
像这样打电话。。问题是这些值没有存储在数据库中。。我哪里出错了??请帮忙


谢谢

您应该使用executeUpdate在fmdb上进行写入。另外,我强烈建议您避免使用stringWithFormat,并使用fmdb的解析功能,它可以在运行时执行类型检查

[db executeUpdate:@"UPDATE CreateGoal SET Column1 = ?, Column2 = ?", value1, value2, nil]; //check as always the nil at the end

希望有帮助

非常感谢。。这肯定有帮助。。但y确实是不推荐使用的字符串格式?因为如果您将来改变主意,更改变量的类型(从int到NSNumber或类似),您应该找到并替换所有代码。我知道,因为我知道:)