SQL二维码跳转存值

2017-10-25  本文已影响0人  捏兜兜

DataBase 。h

#import#import "Yly.h"#import@interface SqliteData : NSObject

// 定义全局变量

{

sqlite3 *db;

}

// 单例方法

+(instancetype)initData;

// 初始化数据库

-(void)initSqlData;

// 初始化数据库表格

-(void)initSqlTableData;

// 添加数据

-(void)addSqlData:(Yly *)data;

// 修改数据

-(void)changeSqlData:(Yly *)data;

// 删除数据

-(void)deleteSqlData:(NSInteger)deleData;

// 查询数据

-(NSMutableArray *)showSqlAllArr;

// 关闭数据库

-(void)closeSqlData;

sqlData (DataBase)

#import "SqliteData.h"

// 定义一个静态变量

static SqliteData *sql = nil;

@implementation SqliteData

// 单例方法

+(instancetype)initData

{

if (!sql) {

sql = [[SqliteData alloc] init];

}

return sql;

}

// 初始化数据库

-(void)initSqlData

{

// 创建沙盒路径

NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];

// 拼接

NSString *newPath = [path stringByAppendingString:@"/1511E.db"];

NSLog(@"-------------%@",newPath);

// 判断

if (sqlite3_open([newPath UTF8String], &db) == SQLITE_OK) {

NSLog(@"数据库打开成功");

[self initSqlTableData];

}else{

NSLog(@"数据库打开失败");

}

}

// 初始化数据库表格

-(void)initSqlTableData

{

// 创建sql语句

const char *sql = "create table if not exists Ylys(ylyID integer primary key, pathStr text, textPath text)";

// 预编译指针

sqlite3_stmt *stmt;

// 打开数据库接口

sqlite3_prepare_v2(db, sql, -1, &stmt, nil);

// 判断

if (sqlite3_step(stmt) == SQLITE_DONE) {

NSLog(@"数据库表格打开成功");

}else{

NSLog(@"数据库表格打开失败");

}

// 销毁接口

sqlite3_finalize(stmt);

}

// 添加数据

-(void)addSqlData:(Yly *)data

{

// 添加 sql 语句

const char *sql = "insert into Ylys values(null, ?, ?)";

// 预编译指针

sqlite3_stmt *stmt;

// 打开数据库接口

sqlite3_prepare_v2(db, sql, -1, &stmt, nil);

// 绑定数据库接口

sqlite3_bind_text(stmt, 1, [data.pathStr UTF8String], -1, SQLITE_TRANSIENT);

sqlite3_bind_text(stmt, 2, [data.textPath UTF8String], -1, SQLITE_TRANSIENT);

// 执行预编译接口

sqlite3_step(stmt);

// 销毁接口

sqlite3_finalize(stmt);

}

// 修改数据

-(void)changeSqlData:(Yly *)data

{

// 修改 sql 语句

const char *sql = "update Ylys set pathStr = ?, textPath = ? where ylyID = ?";

// 预编译指针

sqlite3_stmt *stmt;

// 打开数据库接口

sqlite3_prepare_v2(db, sql, -1, &stmt, nil);

// 绑定数据库接口

sqlite3_bind_text(stmt, 1, [data.pathStr UTF8String], -1, SQLITE_TRANSIENT);

sqlite3_bind_text(stmt, 2, [data.textPath UTF8String], -1, SQLITE_TRANSIENT);

// 绑定主键 id

sqlite3_bind_int(stmt, 3, (int)(data.ylyID));

// 执行预编译指针

sqlite3_step(stmt);

// 销毁接口

sqlite3_finalize(stmt);

}

// 删除数据

-(void)deleteSqlData:(NSInteger)deleData

{

// 删除 sql 语句

const char *sql = "delete from Ylys where ylyID = ?";

// 预编译指针

sqlite3_stmt *stmt;

// 打开数据库接口

sqlite3_prepare_v2(db, sql, -1, &stmt, nil);

// 删除主键 id

sqlite3_bind_int(stmt, 1, (int)(deleData));

// 执行预编译指针

sqlite3_step(stmt);

// 销毁接口

sqlite3_finalize(stmt);

}

// 查询数据

-(NSMutableArray *)showSqlAllArr

{

// 查询 sql 语句

const char *sql = "select * from Ylys";

// 预编译指针

sqlite3_stmt *stmt;

// 打开数据库接口

sqlite3_prepare_v2(db, sql, -1, &stmt, nil);

// 创建数组

NSMutableArray *arr = [NSMutableArray array];

while (sqlite3_step(stmt) == SQLITE_ROW) {

// 初始化类

Yly *yyy = [[Yly alloc] init];

// 找到主键id

yyy.ylyID = sqlite3_column_int(stmt, 0);

yyy.pathStr = [NSString stringWithUTF8String:(const char *)sqlite3_column_text(stmt, 1)];

yyy.textPath = [NSString stringWithUTF8String:(const char *)sqlite3_column_text(stmt, 2)];

// 将数据添加到数组

[arr addObject:yyy];

}

// 销毁接口

sqlite3_finalize(stmt);

// 返回 数组

return arr;

}

// 关闭数据库

-(void)closeSqlData

{

sqlite3_close(db);

}

// 按钮的点击事件

-(void)didClickBtn:(UIButton *)sender

{

imgView.image = [QRCodeGenerator qrImageForString:tf.text imageSize:imgView.frame.size.width];

// 转换图片格式

NSData *imgData = UIImagePNGRepresentation(imgView.image);

// 获取沙盒路径

NSString *paths= [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES) objectAtIndex:0];

// 拼接图片的文件路径

NSString *imageFilePath = [NSString stringWithFormat:@"%@/%@.png",paths,tf.text];

NSLog(@"%@", [imgData writeToFile:imageFilePath atomically:YES]?@"存储成功":@"存储失败");

NSLog(@"0000-----======%@",imageFilePath);

Message *yly = [[Message alloc] init];

yly.pathStr = imageFilePath;

yly.textPath = tf.text;

[[SqliteData initData] initSqlData];

[[SqliteData initData] addSqlData:yly];

[[SqliteData initData] closeSqlData];

}

UITwoViewController

// 设置 内容

[[SqliteData initData] initSqlData];

marr = [[SqliteData initData] showSqlAllArr];

[[SqliteData initData] closeSqlData];

[myTable reloadData];

cell获取内容

NSLog(@"===%@",[marr[indexPath.row] textPath]);

cell.imageView.image = [UIImage imageWithContentsOfFile:[marr[indexPath.row] pathStr]];

cell.textLabel.text = [marr[indexPath.row] textPath];

上一篇下一篇

猜你喜欢

热点阅读