IOS sqlite3

注意:在建立數據庫時:要在工程中添加sql





.h文件數據庫

---------------------------------------------------------------數組

#import <Foundation/Foundation.h>spa

#import "sqlite3.h".net

@interface User : NSObject3d

{orm

    sqlite3 * linik;sqlite

    NSString * path;ci


}rem

//添加四個數據

-(NSInteger )addNewGoods:(NSString*)addGoodname withPrice:(NSString *)addwithPrice andStorage : (NSString * )addGoodsStorage;

-(NSMutableArray *) showNewGoodsInformation;


@end

---------------------------------------------------------------

.m文件


#import "User.h"


@implementation User


-(id)init{

    

    self =[super init];

    //根目錄

    path =@"//Users/dc017/desktop/MicroMall.db";

    

    //打開數據庫

    sqlite3_open([path UTF8String], &linik);

    

    //建立表

    NSString * createGoodsTable=@"create table if not exists goods(goods_id integer primary key autoincrement,goods_name varchar(40),goods_Price varchar(7),goods_storage varchar(8) )";

    

    

    //執行

    sqlite3_exec(linik, [createGoodsTable UTF8String], nil, nil, nil);

    

    

    return self;

    

}


//插數據

 -(NSInteger )addNewGoods:(NSString*)addGoodname withPrice:(NSString *)addwithPrice andStorage : (NSString * )addGoodsStorage{

    

     //輔助

    sqlite3_stmt * state;

     

    NSString * goodsId;

    

     //建立表

    NSString * insertGoods=[NSString stringWithFormat:@"insert into goods(goods_name,goods_Price,goods_storage) values(\"%@\",\"%@\",\"%@\")",addGoodname,addwithPrice,addGoodsStorage];

    

     //若是每個表都插入成功  SQLITE_OK表明都插進了

    if (sqlite3_exec(linik, [insertGoods UTF8String], nil, nil, nil)==SQLITE_OK) {

        //查找新添加商品Id

        NSString * selectNewGoods=[NSString stringWithFormat:@"select goods_id from goods where goods_name=\"%@\" ",addGoodname];

        

        //預處理

        sqlite3_prepare_v2(linik, [selectNewGoods UTF8String], -1, &state, nil);

       // SQLITE_ROW表明每一行插進去了

        while (sqlite3_step(state)==SQLITE_ROW) {

            goodsId =[NSString stringWithUTF8String:( char *)sqlite3_column_text(state, 0)];

        }

        

    }

    

    NSLog(@"jdsfhk");

    return [goodsId integerValue];

    

}


//從數據庫中提取字段


-(NSMutableArray *)showNewGoodsInformation{

    //輔助的

    sqlite3_stmt *state;

    

    

    //接收從數據庫中拿出來的值

    NSString * goodsId;

    NSString * goodsName;

    NSString * goodsPrice;

    NSString * goodsStorge;

    

    

    //將值用可變數組接收

    NSMutableArray * muarray=[[NSMutableArray alloc]initWithCapacity:10];

    

    NSDictionary * dic;

    

    

    //查看商品表

    NSString * selectGoods=[[NSString alloc]initWithFormat:@"select * from goods order by goods_id desc;"];//order by goods_id desc 降序

    

    //預編譯

    sqlite3_prepare_v2(linik, [selectGoods UTF8String], -1, &state, nil);

    

    //取出下一行0123列字段全部的值

    while (sqlite3_step(state) == SQLITE_ROW) {

        //取出地一列的全部值

        goodsId =[[NSString alloc]initWithCString:(char *)sqlite3_column_text(state, 0) encoding:NSUTF8StringEncoding];

        

        //取出第二列的全部值

        goodsName = [[NSString alloc]initWithCString:(char *)sqlite3_column_text(state, 1) encoding:NSUTF8StringEncoding];

        //取出第三列的全部值

        

        goodsPrice =[[NSString alloc]initWithCString:(char *)sqlite3_column_text(state, 2) encoding:NSUTF8StringEncoding];

        //取出第四列的全部值

        

        goodsStorge =[[NSString alloc]initWithCString:(char *)sqlite3_column_text(state, 3) encoding:NSUTF8StringEncoding];

        

        

        //先用字典包裝

        dic=@{     @"goodsId":goodsId,

                   @"goodsName":goodsName,

                   @"goodsPrice":goodsPrice,

                   @"goodsStorge":goodsStorge,

            };

        

        //再用數組包裝

        [muarray addObject:dic];

        

    }

    

   return muarray;

    

}


@end

相關文章
相關標籤/搜索