更新Sqlite3上的查询无法正常工作
-(void)updateAlarms:(AlarmsBean *)todoItem//TodoItem: (AlarmsBean*)todoItem
{
if (_updateAlarmsStatement == NULL)
{
sqlite3_prepare_v2(_database,
"UPDATE AlarmSetting SET Sound = ?, Sensitivity = ?, Label = ? , Repeat = ? ,
time = ? , On_Off = ? WHERE ID = ?",
-1,
&_updateAlarmsStatement,
NULL);
}
sqlite3_reset(_updateAlarmsStatement);
sqlite3_bind_text(_updateAlarmsStatement, 1,
[todoItem.AlarmSoundName UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_int(_updateAlarmsStatement, 2, todoItem.AlarmSensitivity);
sqlite3_bind_text(_updateAlarmsStatement, 3, [todoItem.AlarmName UTF8String], -1,
SQLITE_TRANSIENT);
sqlite3_bind_int(_updateAlarmsStatement, 4, todoItem.AlarmRepeat);
sqlite3_bind_text(_updateAlarmsStatement, 5, [todoItem.AlarmTime UTF8String], -1,
SQLITE_TRANSIENT);
sqlite3_bind_int(_updateAlarmsStatement, 6, todoItem.AlarmOnOff);
sqlite3_bind_int(_updateAlarmsStatement, 7, todoItem.AlarmID);
sqlite3_step(_updateAlarmsStatement);
}
在其他课程中:
AlarmsBean * todoItem1 = [[AlarmsBean alloc] init];
database = [[ClassAlarmDB alloc] init];
todoItem1.AlarmID = 1 ;
todoItem1.AlarmSoundName = @"28.png";
todoItem1.AlarmSensitivity = 1 ;
todoItem1.AlarmName = @"ahmad" ;
todoItem1.AlarmRepeat = 1;
todoItem1.AlarmTime = @"00 : Am";
todoItem1.AlarmOnOff = 4 ;
NSLog (@"Befor Update");
[database updateAlarms: todoItem1];
但是数据库没有更新。
答案 0 :(得分:0)
检查sqlite3_step(..)
的返回代码,也可能sqlite3_prepare_v2(..)
。如果不是SQLITE_OK
或SQLITE_DONE
,请打印sqlite3_errcode(_database)
和sqlite3_errmsg(_database)
。
这应该会为您提供一些信息。