使用SQLite数据库存储数据(4)-删除数据记录

删除数据记录

当从UITableView中删除一行记录时,将调用commitEditingStyle方法。
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete) {
// Get the object to delete from the array
NotebookInfo *notebookInfo = [noteArray objectAtIndex:indexPath.row];
[self removeNotebook: notebookInfo];

// Delete the object from the table
[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
}

- (void)removeNotebook:(NotebookInfo *)notebookInfo {
// Delete it from the database
sqlite3_stmt *statement;

const char *sql = "delete from Notebook where id = ?";
// 编译SQL 语句,创建Statement 对象
if(sqlite3_prepare_v2(noteDB, sql, -1, &statement, NULL) != SQLITE_OK)
NSAssert1(0, @"Error while creating delete statement. '%s'", sqlite3_errmsg(noteDB));

//When binding parameters, index starts from 1 and not zero.
sqlite3_bind_int(statement, 1, notebookInfo.pk_id);

// SQLITE_DONE 表示成功执行了Statement
if (sqlite3_step(statement)  != SQLITE_DONE)
NSAssert1(0, @"Error while deleting. '%s'", sqlite3_errmsg(noteDB));

// Reset a prepared Statement object
sqlite3_reset(statement);
// Destroy the Statement object
sqlite3_finalize(statement);

 

 

// Remove it from the array
[noteArray removeObject:notebookInfo];
}

在上面的代码中,我们实现了从3个地方删除对应的数据记录:
(1) 从SQLite数据表中删除对应的记录;
(2) 从noteArray 数组中删除对应的notebookInfo对象元素;
(3) 从UITableView 中删除对一个的数据行;

现在运行App测试一下,如果代码运行正常,运行效果如下图所示:

 

转载于:https://www.cnblogs.com/tuncaysanli/archive/2012/10/17/2727958.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值