FMDB增删改查

作者: 小苗晓雪 | 来源:发表于2017-07-10 23:07 被阅读8次

开数据库

#pragma mark - 开数据库
- (void)openDatabase
{
    NSString *filePath = [self filepath];
    self.database = [FMDatabase databaseWithPath:filePath];
    
    if ([self.database open]) {
        //执行更新(在这里输入建表语句):
        [self.database executeUpdate:@"create table if not exists contacts(id integer primary key autoincrement , name text , mobile text)"];
    }
}

从数据库删除表格数据

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (editingStyle == UITableViewCellEditingStyleDelete)
    {
        
###pragma mark - 删数据库数据
        int64_t serialId = [self.contacts[indexPath.row] serialId];
        //这里必须用@() , 包装对象;否则报错:
        /*
         *  Showing All Errors Only /Users/admin/Desktop/02-NetEase合辑/下载代码/04-文件存储/1.4 Beyond the SQLite Demo/ContactDemoFMDB跟敲代码/ContactDemo/ContactListTableViewController.m:92:57: Property 'serialId' not found on object of type 'id'
         */
        if ([self.database executeUpdate:@"delete from contacts where id = ?", @(serialId)]) {
            
            [self.contacts removeObjectAtIndex:indexPath.row];
            [self.tableView reloadData];
        }
    }
}

在searchBar上查询数据库信息

- (void)updateSearchResultsForSearchController:(UISearchController *)searchController
{
    NSString *text = searchController.searchBar.text;
    NSMutableArray *contacts = nil;
    NSString *sql = @"select * from contacts where name like ? or mobile like ?";
    if ([text length]) {
        NSString *searchText = [NSString stringWithFormat:@"%%%@%%",text];
        contacts = [NSMutableArray array];
        FMResultSet *set = [self.database executeQuery:sql , searchText , searchText];
        while ([set next]) {
            Contact *contact = [[Contact alloc] init];
            contact.serialId = [set longLongIntForColumn:@"id"];
            contact.name = [set stringForColumn:@"name"];
            contact.mobile = [set stringForColumn:@"mobile"];
            [contacts addObject:contact];
        }
        [set close];
    }
    self.filteredContacts = contacts;
    [self.tableView reloadData];
}

读取数据库信息

#pragma mark - 读取数据库
//程序一进来就先读取一下当前数据库信息
- (void)read
{
    FMResultSet *set = [self.database executeQuery:@"select * from contacts"];
    while ([set next]) {
        Contact *contact = [[Contact alloc] init];
        //从列里获取数据:
        contact.serialId = [set longLongIntForColumn:@"id"];
        contact.name = [set stringForColumn:@"name"];
        contact.mobile = [set stringForColumn:@"mobile"];
        [self.contacts addObject:contact];
    }
    //关闭查询
    [set close];
}

愿编程让这个世界更美好

相关文章

  • FMDB增删改查

    DEMO

  • FMDB增删改查

    开数据库 从数据库删除表格数据 在searchBar上查询数据库信息 读取数据库信息 愿编程让这个世界更美好

  • 数据库

    数据库常用操作介绍增删改查 FMDB FMDB简单介绍 、FMDB使用 需求:判断一个table是存在 判断一个t...

  • FMDB-使用

    FMDB 增删改查 FMDB 优点:[1] 使用起来更加面向对象,省去了很多麻烦、冗余的C语言代码[2] 对比苹果...

  • mysql的插入语句

    MySQL增删改查之增insert、replace

  • 项目用到本地数据存储 使用FMDB心得

    一,创建一个单例管理FMDB 二,下面开始增删改查 基本操作

  • iOS编程中FMDB 使用方法

    一.什么是FMDB? 1.FMDB存在的意义 iOS中使用C语言函数对原生SQLite数据库进行增删改查操作,复杂...

  • iOS FMDB增删改查

    FMDB是一款简洁、易用的封装库,下面简单介绍下FMDB的使用: 在FMDB下载文件后,导入工程中,并使用 lib...

  • MYSQL数据库的增删改查

    MYSQL数据库的增删改查 一.对于库的增删改查 增create database 库名称;create data...

  • iOS 数据库

    一,FMDB 1,FMDB 的基本使用创建数据库 创建表单 增 删 改 查 FMDatabase这个类, 他不是线...

网友评论

    本文标题:FMDB增删改查

    本文链接:https://www.haomeiwen.com/subject/qktphxtx.html