iOS開發-資料庫-sqlite操作2

來源:互聯網
上載者:User

1.建立single view工程,匯入FMDatabase庫,匯入libsqlite3系統庫;

2.ViewController.xib檔案


3.ViewController.h

@interface ViewController : UIViewController{    IBOutlet UITextField *_name;    IBOutlet UIImageView *_image;    FMDatabase *_db;}- (IBAction)add:(id)sender;- (IBAction)del:(id)sender;- (IBAction)search:(id)sender;- (IBAction)update:(id)sender;

4.ViewController.m

- (void)viewDidLoad{    [super viewDidLoad];    //    _image.userInteractionEnabled = YES;        //為UIImageView輕觸手勢    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(selectImage)];//    tap.numberOfTapsRequired = 2;//雙擊觸發,預設單擊//    tap.numberOfTouchesRequired = 2;//兩個手指同時按,預設單指    [_image addGestureRecognizer:tap];    [tap release];    //資料庫路徑    NSString *path = [NSString stringWithFormat:@"%@/Documents/data.db", NSHomeDirectory()];      _db = [[FMDatabase alloc] initWithPath:path];    }- (void)selectImage{    UIImagePickerController *ipc = [[UIImagePickerController alloc] init];    ipc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;//設定圖片來源為相簿    ipc.delegate = self;    [self presentViewController:ipc animated:YES completion:nil];//用模態視圖來展示選擇視窗    [ipc release];}//選擇圖片調用- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{    _image.image = [info objectForKey:UIImagePickerControllerOriginalImage];    [self dismissViewControllerAnimated:YES completion:nil];}//點擊取消調用- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{    [self dismissViewControllerAnimated:YES completion:nil];}- (IBAction)add:(id)sender{    if (_name.text == nil || _image.image == nil) {        NSLog(@"空");        return;    }        //開啟資料庫    BOOL res = [_db open];    if (res == NO) {        NSLog(@"開啟失敗");        return ;    }        //開啟成功    //建立表    res  = [_db executeUpdate:@"create table if not exists studentss(id integer primary key autoincrement, name, image)"];    if (res == NO) {        NSLog(@"建立表失敗");        [_db close];        return;    }        //NSNumber NSString NSData    //插入資料    NSData *data = UIImagePNGRepresentation(_image.image);    res = [_db  executeUpdate:@"insert into studentss(name, image) values(?,?)",_name.text, data];    if (res == NO) {        NSLog(@"插入失敗");    }        [_db close];}- (IBAction)del:(id)sender{    BOOL res = [_db open];    if (res == NO) {        NSLog(@"開啟失敗");        return;    }    res = [_db   executeUpdate:@"delete from studentss where name=?", _name.text];    if (res == NO) {        NSLog(@"刪除失敗");    }    [_db close];}- (IBAction)search:(id)sender{    BOOL res = [_db open];    if (res == NO) {        NSLog(@"開啟失敗");        return;    }    FMResultSet *set = [_db executeQuery:@"select * from studentss"];    while ([set next]) {        int uid = [set intForColumn:@"id"];//根據欄位名來取//        int uid = [set intForColumnIndex:0];根據欄位索引來取        NSString *name = [set stringForColumnIndex:1];//        NSData *data = [set dataForColumn:@"image"];        NSLog(@"%d---%@", uid, name);    }        [_db close];}- (IBAction)update:(id)sender{    BOOL res = [_db open];    if (res == NO) {        NSLog(@"開啟失敗");        return;    }    res = [_db executeUpdate:@"update studentss set name='bala' where name=?", _name.text];    if (res == NO) {        NSLog(@"update失敗");    }    [_db close];}


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.