数据库的数据添加和查询

[cpp]  view plain copy
  1. /*= = = - - - = = = 
  2.      sqlite3 数据库里添加数据 
  3.      = = = - - - = = = */  
  4.       
  5.     //1.定义一个sqlite3的指针  
  6.     sqlite3 *db;  
  7.     //2.用来接收读写数据库操作是否成功的返回值  
  8.     int dbrc;  
  9.     //3.转换数据库路径为UTF8的c风格字符串  
  10.     const char* dbFilePathUTF8 = [dbFilePath UTF8String];  
  11.     //4.打开数据库  
  12.     dbrc = sqlite3_open(dbFilePathUTF8, &db);  
  13.     //判断是否成功打开  
  14.     if (dbrc == SQLITE_OK) {  
  15.         NSLog(@"成功打开了数据库");  
  16.     }  
  17.     //5.定义执行sql语句的指针  
  18.     sqlite3_stmt *dbps;  
  19.     //6.定义sql语句  
  20.     NSString *insertStatementNS = [NSString stringWithFormat:  
  21.                                    @"insert into \"shopping\"\  
  22.                                    (item, price, groupid, dateadd)\  
  23.                                    values (\"%@\", %@, %d, DATETIME('NOW'))",  
  24.                                    @"lll",  
  25.                                    @"350",  
  26.                                    2];  
  27.     //7.将定义的NSString的sql语句,转换成UTF8的c风格的字符串  
  28.     const char *insertStatement = [insertStatementNS UTF8String];  
  29.       
  30.       
  31.     //8.sql语句的预执行。(判断sql语句是否符合语法)      
  32.     dbrc = sqlite3_prepare_v2   
  33.     (db, insertStatement, -1, &dbps, NULL);  
  34.       
  35.     //9.执行sql语句  
  36.     dbrc = sqlite3_step (dbps);  
  37.       
  38.     NSLog(@"dbrc = %d",dbrc);  
  39.       
  40.       
  41.       
  42.       
  43.     /*= = = - - - = = = 
  44.      数据库里读取数据 
  45.      = = = - - - = = =*/  
  46.       
  47.     //1.定义一个查询语句      
  48.     NSString *queryStatementNS =  
  49.     @"select key,item,price,groupid,dateadd from shopping";  
  50.       
  51.     //2.将定义的NSString的查询语句转换成UTF8的c字符串      
  52.     const char *queryStatement = [queryStatementNS UTF8String];  
  53.       
  54.     //3.sql语句的预处理      
  55.     dbrc = sqlite3_prepare_v2 (db, queryStatement, -1, &dbps, NULL);  
  56.     NSLog (@"prepared statement=%d",dbrc);  
  57.       
  58.     //4.获取值,要用相匹配的方法去获取相应类型的值,并要转换类型  
  59.     while ((dbrc = sqlite3_step (dbps)) == SQLITE_ROW)  
  60.     {  
  61.          
  62.         //获取主健的值 int型的 用 sqlite3_column_int  
  63.         int primaryKeyValueI = sqlite3_column_int(dbps, 0);  
  64.         //转换成 NSNumber 类型的  
  65.         NSNumber *primaryKeyValue = [[NSNumber alloc]  
  66.                                      initWithInt: primaryKeyValueI];  
  67.           
  68.         NSLog(@"primaryKeyValue = %@",primaryKeyValue);  
  69.           
  70.         //获取item的值 字符串用 sqlite3_column_text    
  71.         NSString *itemValue = [[NSString alloc]  
  72.                                initWithUTF8String: (char*) sqlite3_column_text (dbps, 1)];  
  73.           
  74.         NSLog(@"itemValue = %@",itemValue);  
  75.           
  76.         //获取price的值  double类型用 sqlite3_column_double  
  77.         double priceValueD = sqlite3_column_double (dbps, 2);  
  78.           
  79.         NSLog(@"priceValueD = %lf",priceValueD);  
  80.         //转换类型  
  81.         NSNumber *priceValue = [[NSNumber alloc]  
  82.                                 initWithDouble: priceValueD];  
  83.           
  84.         NSLog(@"priceValue =  %@",priceValue);  
  85.           
  86.         //获取guoupid的值  
  87.         int groupValueI = sqlite3_column_int(dbps, 3);  
  88.           
  89.         NSLog(@"groupValueI =  %d",groupValueI);  
  90.           
  91.         NSNumber *groupValue = [[NSNumber alloc]  
  92.                                 initWithInt: groupValueI];  
  93.           
  94.         NSLog(@"groupValue =  %@",groupValue);  
  95.           
  96.         //获取dateadd的值  
  97.         NSString *dateValueS = [[NSString alloc]   
  98.                                 initWithUTF8String:(char*)sqlite3_column_text (dbps, 4)];  
  99.           
  100.         NSLog(@"dateValueS =  %@",dateValueS);  
  101.                   
  102.     }      
  103.       
  104.     //10.释放资源  
  105.     sqlite3_finalize (dbps);  
  106.       
  107.     //11.关闭数据库      
  108.     sqlite3_close(db);  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值