如何删除sqlite数据库表中的行?

MAX*_*MAX 7 sqlite iphone fmdb

我正在使用fmdb来管理我的数据库.我找不到任何从fmdb中的表中删除行的示例.我试过了

  NSString *sqlStat=@"DELETE from tableName WHERE id=3";    
  FMResultSet *rs = [database executeQuery:sqlStat];
Run Code Online (Sandbox Code Playgroud)

但它不起作用,因为当我检查表中的条目总数时,我得到的数字与执行上述语句之前的数字相同.那么,使用fmdb从表中删除行的正确方法是什么?

con*_*are 12

如果您不将对象作为NSNumber传递,FMDB可能有点挑剔.这是格式化查询的受支持且安全的方式.

[db executeUpdate:@"DELETE FROM theTable WHERE id = ?", [NSNumber numberWithInt:myObject.id]];
Run Code Online (Sandbox Code Playgroud)


Flo*_*rin 11

你应该替换:

... [数据库executeQuery:sqlStat] ...

有:

... [database executeUpdate:sqlStat];

另外,尝试添加:

[database beginTransaction];
Run Code Online (Sandbox Code Playgroud)

在您的CRUD阻止之前,并且:

[database commit];
Run Code Online (Sandbox Code Playgroud)

执行更新/删除/插入操作后.

;)