iphone上sqlite3的使用

1.创建数据库

- (void)viewDidLoad {
NSString *filename = [self dataFilePath];
NSLog(@"%@",filename);
if (sqlite3_open([filename UTF8String], &db) != SQLITE_OK) {
sqlite3_close(db);
NSAssert(NO,@"数据库打开失败。");
} else {
char *err;
NSString *createSQL = [NSString stringWithFormat:@"CREATE TABLE IF NOT EXISTS
%@ (%@ TEXT PRIMARY KEY, %@ TEXT, %@ TEXT);" ,

TABLE_NAME,FIELDS_NAME_SID,FIELDS_NAME_SNAME,FIELDS_NAME_SCLASS];
if (sqlite3_exec(db,[createSQL UTF8String],NULL,NULL,&err) != SQLITE_OK) {
sqlite3_close(db);
NSAssert1(NO, @"建表失败, %@", err);
}
sqlite3_close(db);
}
}

2.数据保存

-(IBAction) save {
NSString *filename = [self dataFilePath];
NSLog(@"%@",filename);
if (sqlite3_open([filename UTF8String], &db) != SQLITE_OK) {
sqlite3_close(db);
NSAssert(NO,@"数据库打开失败。");
} else {
NSString *sqlStr = [NSString stringWithFormat: @"INSERT OR REPLACE INTO %@ (%@, %@, %@) VALUES (?,?,?)",
TABLE_NAME, FIELDS_NAME_SID, FIELDS_NAME_SNAME, FIELDS_NAME_SCLASS];

sqlite3_stmt *statement;
//预处理过程
if (sqlite3_prepare_v2(db, [sqlStr UTF8String], -1, &statement, NULL) == SQLITE_OK) {
//绑定参数开始
sqlite3_bind_text(statement, 1, [studentId.text UTF8String], -1, NULL);
sqlite3_bind_text(statement, 2, [studentName.text UTF8String], -1, NULL);
sqlite3_bind_text(statement, 3, [studentClass.text UTF8String], -1, NULL);
//执行插入
if (sqlite3_step(statement) != SQLITE_DONE) {
NSAssert(0, @"插入数据失败。");
}
}
sqlite3_finalize(statement);
sqlite3_close(db);
}
}

3.查询数据

-(IBAction) load {
NSString *filename = [self dataFilePath];
NSLog(@"%@",filename);
if (sqlite3_open([filename UTF8String], &db) != SQLITE_OK) {
sqlite3_close(db);
NSAssert(NO,@"数据库打开失败。");
} else {
NSString *qsql = [NSString stringWithFormat: @"SELECT %@,%@,%@ FROM
%@ where %@ = ?", FIELDS_NAME_SID, FIELDS_NAME_SNAME,
FIELDS_NAME_SCLASS, TABLE_NAME,FIELDS_NAME_SID];

sqlite3_stmt *statement;
//预处理过程
if (sqlite3_prepare_v2(db, [qsql UTF8String], -1, &statement, NULL) == SQLITE_OK) {
//绑定参数开始
sqlite3_bind_text(statement, 1, "1000", -1, NULL);

while (sqlite3_step(statement) == SQLITE_ROW) {
char *field1 = (char *) sqlite3_column_text(statement, 0);
NSString *field1Str = [[NSString alloc] initWithUTF8String: field1];
studentId.text = field1Str;
char *field2 = (char *) sqlite3_column_text(statement, 1);
NSString *field2Str = [[NSString alloc] initWithUTF8String: field2];
studentName.text = field2Str;
char *field3 = (char *) sqlite3_column_text(statement, 2);
NSString *field3Str = [[NSString alloc] initWithUTF8String: field3];
studentClass.text = field3Str;
[field1Str release];
[field2Str release];
[field3Str release];
}
}

sqlite3_finalize(statement);
sqlite3_close(db);
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用python完成手机商品简易进销存系统程序,要求如下: (1) 手机商品内容应至少包含id号,名称,价格,数量,例如: products = [{"id": 1, "name": "华为Mate50", "price": 6000, "quantity": 100}, (2) 系统具有以下功能:  功能菜单(也是入口程序运行后出现的界面,用户可在此界面进行功能选择)  管理商品(即商品信息的录入删除与修改,先判断欲管理的商品是否在商品数据库,如无则新增该商品,如有则进行商品信息录入删除或修改)  进货(即增加商品数量,先判断欲录入的商品是否在商品数据库,如是则修改数量,如否则询问是否要进入管理商品功能)  销货(即减少商品数量,先判断欲销售的商品是否在商品数据库,如是则根据用户购买需要修改数量,根据情况进入进货功能或产生销售行为)  查货(即查询商品库存情况和销售情况,根据用户输入的商品名称、id号、商品数量进行查询,要求支持商品名称模糊查询,如查询“为”应能检索到“华为Mate50”的商品信息,如有查询结果则询问是否要进入销货系统,根据选择进入销货系统或功能菜单) (3) 实现的功能与过程要符合合理好用的原则,如功能模块之间的跳转应合理,数据输入过程应有数据检验:例如输入购买商品id不在库存商品范围内应报错、输入超过库存数量的购买商品数量、输入明显错误的数量或价格也应报错(如输入负数)等等; (4) 数据应符合准确原则,其变化添减应准确且符合商品进销存管理的逻辑要求; (5) 可合理自行决定在开发过程中使用函数、类、对象、第三方库(模块)等开发代码,方便代码的理解与组织部署; (6) 所有数据均要求保存在SQLITE3库中,界面可使用字符型界面。 (7) 可选要求:程序界面可使用字符型界面,也可使用类似tkinker的图形界面进行设计,鼓励使用图形界面,使用图形界面的作品将酌情增加不超过8分的附加分。
最新发布
02-06

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值