亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

IOS學習筆記2015-04-090C-SQLite數據存儲

2019-11-14 19:17:15
字體:
來源:轉載
供稿:網友

1 項目導入 libsqlite3.0.dylib 框架

2 在使用數據sqlite的頭文件(.h)上導入 #Impourt <sqlite3.h>

3 推薦自己本地電腦下個sqlite Manager 管理軟件類似的

下面上代碼

////  ViewController.m//  SQLiteDemo////  Created by wangtouwang on 15/4/9.//  Copyright (c) 2015年 wangtouwang. All rights reserved.//#import "ViewController.h"#import "WPUser.h"#define DBNAME @ "MySQLite.sqlite"@interface ViewController (){    sqlite3 *db;}@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];        [self createSqlDBOrOpenDB];        [self createTable];    //    for (int index=0; index<30; index++) {//         [self insertIntoData];//    }    [self updateData:[self searchAllData]];        }#PRagma mark 更新數據 -(void)updateData:(NSMutableArray *)array{    NSString *sql = @"update user set name=?,age=? where id=?";    sqlite3_stmt *stmt;    for (int index=0; index<array.count; index++) {        WPUser *user =  (WPUser *)array[index];        user.name=@"張建華";        user.age=31;        if (sqlite3_prepare_v2(db, [sql UTF8String], -1, &stmt, NULL)==SQLITE_OK) {            sqlite3_bind_text(stmt, 1, [user.name UTF8String], -1, NULL);            sqlite3_bind_int(stmt, 2, user.age);            sqlite3_bind_int(stmt, 3, user.ID);            if (sqlite3_step(stmt)==SQLITE_DONE) {                NSLog(@"更新成功");            }        }    }}#pragma mark 讀取數據 -(NSMutableArray *)searchAllData{    NSMutableArray *array = [NSMutableArray array];    NSString *sql = @"select id,name,age from user";    sqlite3_stmt *stmt;    if (sqlite3_prepare_v2(db, [sql UTF8String], -1, &stmt, NULL)==SQLITE_OK) {        while (sqlite3_step(stmt)==SQLITE_ROW) {            NSInteger ID =  sqlite3_column_int(stmt, 0);             char *name = (char*)sqlite3_column_text(stmt, 1);           NSString *uname = [[NSString alloc] initWithUTF8String:name];            NSInteger age = sqlite3_column_int(stmt, 2);            NSLog(@"ID=%lu NAME=%s AGE=%lu",ID,name,age);            WPUser *user = [WPUser initUserName:uname Age:age];            user.ID=ID;            [array addObject:user];        }    }     sqlite3_close(db);    return array;}#pragma mark 新增數據-(void)insertIntoData{    NSString *sql = @"insert into user(name,age) values(?,?)";    WPUser *user = [WPUser initUserName:@"JACK" Age:11];    sqlite3_stmt *stmt;    //插入數據前檢測語法是否正確    if ((sqlite3_prepare_v2(db, [sql UTF8String], -1, &stmt, NULL))==SQLITE_OK ) {        //綁定參數 參數2:為序號(從1開始),參數3:為字符串值,參數4 為字符串長度。sqlite3_bind_text的第五個參數為一個函數指針        sqlite3_bind_text(stmt, 1, [user.name UTF8String], -1, NULL);        sqlite3_bind_int(stmt, 2,user.age);        //真正執行插入 sqlite3_step        if (sqlite3_step(stmt)==SQLITE_DONE) {            NSLog(@"INSERT INTO SUCCESS");        }else{            NSLog(@"INSERT INTO ERROR");        }    }}#pragma mark 創建表 -(void)createTable{    NSString *sql = @"create table if not exists user (id integer primary key autoincrement,name text,age integer);";    char *errormsg;    //執行創建語句 sqlite3_exex 是函數 參數一:數據庫的句柄(db),參數二: 為sql語句,參數三 回調參數,是一個指向函數的指針,如果把callback前面的*改成^則就是一個block代碼段,                                //參數四 可以寫NULL,第五個參數為錯誤信息    //在這里創建需要先判斷表是否已存在    int result = sqlite3_exec(db, [sql UTF8String], NULL, NULL, &errormsg);    if (result==SQLITE_OK) {        NSLog(@"創建成功");    }else{        NSLog(@"創建失敗 愿因是:%s",errormsg);    }}#pragma mark 創建數據庫實例或者打開數據實例-(void)createSqlDBOrOpenDB{    //獲取 項目 Doucment文件目錄地址    NSString  *doc =  [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];    NSLog(@"%@",doc);    //創建 SQLITE 文件或者獲取該文件路徑    NSString *DB_PATH = [doc stringByAppendingPathComponent:DBNAME];    NSLog(@"%@",DB_PATH);    //打開或者創建DB實例 這里用到C里面的語法和指針    int result = sqlite3_open([DB_PATH UTF8String], &db);//sqlite3_open方法名 參數 const filename DB文件路徑,第二個參數就是數據庫實例化對象 返回參數 int 類型    if(result!=SQLITE_OK){        sqlite3_close(db);//關閉實例化        NSLog(@"打開數據哭實例化對象失敗");    }else{        NSLog(@"CREATE SUCCESS");    }}@end
////  WPUser.m//  SQLiteDemo////  Created by wangtouwang on 15/4/9.//  Copyright (c) 2015年 wangtouwang. All rights reserved.//#import "WPUser.h"@implementation WPUser-(instancetype)initUserName:(NSString *)name Age:(NSInteger)age{    if (self= [super init]) {        self.name = name;        self.age = age;    }    return self;}+(instancetype)initUserName:(NSString *)name Age:(NSInteger)age{    return [[WPUser alloc] initUserName:name Age:age];}@end

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩精品在线视频| 欧美最顶级丰满的aⅴ艳星| 日韩欧美aⅴ综合网站发布| 欧美日韩一区二区在线| 色噜噜亚洲精品中文字幕| 俺也去精品视频在线观看| 亚洲欧洲偷拍精品| 欧美成人中文字幕在线| 欧美黑人极品猛少妇色xxxxx| 久久精品99无色码中文字幕| 亚洲第一精品福利| 日韩精品免费观看| 国产一区二区色| 亚洲成人av片| 亚洲福利在线视频| 久久久久久久999精品视频| 岛国av一区二区| 亚洲精品福利免费在线观看| 国产精品久久久久久久久免费| 懂色aⅴ精品一区二区三区蜜月| 狠狠躁夜夜躁人人爽天天天天97| 欧美午夜精品在线| 黑人巨大精品欧美一区二区三区| 国产精品igao视频| 色婷婷综合久久久久中文字幕1| 91国偷自产一区二区三区的观看方式| 俺去啦;欧美日韩| 亚洲电影在线观看| 亚洲丁香婷深爱综合| 九九热这里只有精品免费看| 亚洲成人教育av| 亚洲黄色成人网| 欧美精品激情视频| 欧美亚洲在线观看| 久久久久久久久亚洲| 欧美国产欧美亚洲国产日韩mv天天看完整| 俺去了亚洲欧美日韩| 日韩av免费看| 亚洲人成77777在线观看网| 亚洲精品视频免费在线观看| 91国产美女视频| 亚洲国产精品久久久久秋霞不卡| 国产a∨精品一区二区三区不卡| 国产日韩精品电影| 久久综合免费视频| 亚洲天堂免费观看| 日韩有码在线电影| 欧美疯狂性受xxxxx另类| 国产精品视频1区| 亚洲另类图片色| 国产精品嫩草影院久久久| 成人午夜小视频| 欧美超级乱淫片喷水| 日韩精品在线免费观看| 91av在线播放| 欧美有码在线观看| 97av在线视频免费播放| 欧洲成人在线视频| 91sa在线看| 国产不卡精品视男人的天堂| 久久免费视频这里只有精品| 亚洲欧美日韩精品久久奇米色影视| 欧美日韩中文字幕日韩欧美| 亚洲图中文字幕| 精品香蕉一区二区三区| 日韩在线视频免费观看高清中文| 久久婷婷国产麻豆91天堂| 欧美高跟鞋交xxxxxhd| 4p变态网欧美系列| 亚洲少妇中文在线| 色偷偷噜噜噜亚洲男人的天堂| 亚洲欧美一区二区三区情侣bbw| 欧美一区二区三区免费观看| 色噜噜国产精品视频一区二区| 国产成人精品a视频一区www| 日本一区二区三区四区视频| 欧美性色视频在线| 欧美日韩国产在线播放| 亚洲精品www久久久久久广东| 欧美性猛交视频| 国产精品久久久久久婷婷天堂| 日韩成人在线电影网| 综合激情国产一区| 国产欧美日韩专区发布| 国内成人精品视频| 国产福利精品av综合导导航| 久久久久久国产精品三级玉女聊斋| 亚洲第一二三四五区| 国产欧美一区二区三区视频| 欧美猛男性生活免费| 亚洲成人a**站| 欧美高清视频在线播放| 国产成人综合久久| 欧美xxxx14xxxxx性爽| 欧美成年人网站| 欧美性猛交xxxx免费看久久久| 亚洲欧洲日本专区| 国产精品久久999| 欧美激情亚洲精品| 4438全国成人免费| 国产一区二区视频在线观看| 久久久最新网址| 人人做人人澡人人爽欧美| 日韩精品在线免费观看视频| 久久99久国产精品黄毛片入口| 久久人人97超碰精品888| 日韩免费在线免费观看| 国产精品永久免费| 亚洲2020天天堂在线观看| 日韩成人中文字幕| 亚洲精品久久久久国产| 黑人极品videos精品欧美裸| 日韩精品免费观看| 国产欧美一区二区三区在线看| 久久久国产精品免费| 亚洲欧美中文日韩在线v日本| 日韩av手机在线看| 久久综合九色九九| 亚洲综合一区二区不卡| 日本免费一区二区三区视频观看| 久久久久久久久久婷婷| 91久久精品国产91性色| 欧美性猛交xxxx乱大交| 青草热久免费精品视频| 久久久久久久久电影| 午夜精品久久久久久久99黑人| 日韩欧美视频一区二区三区| 国产亚洲一区精品| 精品国产自在精品国产浪潮| 国产成人jvid在线播放| 九九久久久久久久久激情| 91免费看视频.| 欧美日韩亚洲视频一区| 国产成人精品av在线| 97香蕉久久夜色精品国产| 日本精品一区二区三区在线| 国产精品视频网| 亚洲free性xxxx护士hd| 亲子乱一区二区三区电影| 国自产精品手机在线观看视频| 欧美在线视频在线播放完整版免费观看| 国产精品狼人色视频一区| 色综合色综合久久综合频道88| 亚洲激情在线视频| 欧美激情在线一区| 国产视频精品免费播放| 日韩免费观看网站| 欧美一区二粉嫩精品国产一线天| 久久免费视频在线| 69av在线视频| 欧洲精品毛片网站| 97色在线观看| 亚洲第一区在线| 久久影院资源站| 日韩亚洲欧美成人| 色香阁99久久精品久久久| 国产精品一二三视频| 91久久国产精品| 欧美疯狂xxxx大交乱88av| 日韩欧美精品中文字幕| 亚洲乱亚洲乱妇无码| 欧美一级淫片aaaaaaa视频| zzijzzij亚洲日本成熟少妇| 亚洲视频在线看|