zoukankan      html  css  js  c++  java
  • 使用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测试一下,如果代码运行正常,运行效果如下图所示:

  • 相关阅读:
    XCode5中新建工程后强制使用了ARC,如何去掉?
    面向对象程序的设计原则--Head First 设计模式笔记
    ios控件自定义指引
    iOS UITableViewDelegate && UITableViewDataSource 执行顺序
    awakeFromNib方法和viewDidLoad方法区别
    ios 视图的旋转及应用
    线段树模板 (刘汝佳)
    poj 3468
    hdu 2829(四边形优化 && 枚举最后一个放炸弹的地方)
    poj 3517(约瑟夫环问题)
  • 原文地址:https://www.cnblogs.com/tuncaysanli/p/2727958.html
Copyright © 2011-2022 走看看