-(BOOL)updateDevice:(device*) dev{
if([self isDeviceExist:dev]){
sqlite3_stmt *statement;
//1 数据库地址
const char *dbpath = [_databasePath UTF8String];
//2 打开数据库
if (sqlite3_open(dbpath, &_dataBase)==SQLITE_OK) {
//3 数据库语句准备
NSString *insertSql = [NSString stringWithFormat:@"update device set DeviceName = \"%@\",Light1Name = \"%@\", Light2Name = \"%@\" ,Light3Name = \"%@\" where MID = \"%@\"",dev.DeviceName,dev.Light1Name,dev.Light2Name,dev.Light3Name,dev.MID];
NSLog(@"%@",insertSql);
const char *insertsatement = [insertSql UTF8String];
NSLog(@"the char :%s",insertsatement);
if(sqlite3_prepare_v2(_dataBase, insertsatement, -1, &statement, NULL)==SQLITE_OK){
//4 执行数据语句
int result=sqlite3_step(statement);
if (result==SQLITE_DONE) {
NSLog(@"update success");
sqlite3_finalize(statement);
sqlite3_close(_dataBase);
return YES;
}else{
NSLog(@"update failed!");
sqlite3_finalize(statement);
}
}
}
}else{
NSLog(@"device is exist");
}
NSLog(@"Error:%s",sqlite3_errmsg(_dataBase));
sqlite3_close(_dataBase);
return NO;
}
代码如上,update的sql语句在sqlite中测试没问题,可是在实机上测试的时候代码执行没有报错,可是数据没有更新,求解