• iOS sqlite C语言操作


    利用周六时间看了一下关于sqlite的知识。在这记录一下。看的传智播客视频

    对数据的操作基本上就是增删改查:

    static sqlite3 *db; //声明一个数据库
    @implementation XSDBOperator
    
    + (void)initialize
    {
        NSString *filename = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]stringByAppendingPathComponent:@"student.sqlite"];  //数据库文件路径
        //假设文件存在,则打开数据库文件。假设不存在则创建,而且打开
        int result = sqlite3_open(filename.UTF8String, &db); //
        //推断是否打开数据库成功
        if (result == SQLITE_OK) {
            NSLog(@"打开数据库成功");
        }
        else
        {
            NSLog(@"打开失败");
        }
    }
    #pragma mark - 创建数据库表
    +(BOOL)creatTable
    {
        char *sql = "create table if not exists t_student (id integer primary key autoincrement,name text,age integer,score integer);";
        char *errorMesg = NULL;
        int result = sqlite3_exec(db, sql, NULL, NULL, &errorMesg);//用于操作数据库
        if (result == SQLITE_OK) {
            return YES;
        }
        else
        {
            NSLog(@"创建表失败,失败原因:%s",errorMesg);
            return NO;
        }
    }
    
    +(BOOL)insert
    {
        char *sql = "insert into t_table (name,age) values('jack',20)";
        char *errorMesg = NULL;
        int result = sqlite3_exec(db, sql , NULL, NULL, &errorMesg);
        if (result == SQLITE_OK) {
            return YES;
        }
        else
        {
            NSLog(@"插入数据失败,失败原因:%s",errorMesg);
            return NO;
        }
    }
    
    + (BOOL)updata
    {
        char *sql = "updata t_table set age = 12";
        char *errorMesg = NULL;
        int result = sqlite3_exec(db, sql , NULL, NULL, &errorMesg);
        if (result == SQLITE_OK) {
            return YES;
        }
        else
        {
            NSLog(@"更新数据失败,失败原因:%s",errorMesg);
            return NO;
        }
    }
    
    + (void)query
    {
        char *sql = "select id,name,age from t_student;";
        //查询结果保存集合
        sqlite3_stmt *stmt= NULL;
        int result = sqlite3_prepare_v2(db, sql , -1, &stmt, NULL);
        if (result == SQLITE_OK) {
            NSLog(@"查询语句合法");
            while (sqlite3_step(stmt) == SQLITE_ROW) { //依照行进行遍历 直到取完为止
                int sid = sqlite3_column_int(stmt, 0); //取当前行出第几列的值
                const unsigned char *sname = sqlite3_column_text(stmt, 1);
                int sage = sqlite3_column_int(stmt, 2);
                NSLog(@"%d,%s,%d",sid,sname,sage);
            }
        }
        else
        {
            NSLog(@"查询语句不合法");
        }
    }
    @end
    


  • 相关阅读:
    ASC1 C New Year Bonus Grant
    CodeForces 180C Letter
    Codeforces 71C Round Table Knights
    GCPC2014 J Not a subsequence
    treeview自动从表中添加标题和列值做目录的方法2
    delphi学习treeview中从表列名和数据添加为目录并双击自动选中
    对一个表中所有列数据模糊查询adoquery
    单击dbgrid列标题排序 升降序
    从右键菜单里粘贴复制的工资到数据库里
    如何从右键弹出菜单中清空删除数据加清空前提问确定
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/6719586.html
Copyright © 2020-2023  润新知