sqlite--代码操作
1.创建数据库
NSString * docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject];
NSLog(@"%@",docPath);
NSString * filePath = [docPath stringByAppendingPathComponent:@"stu.sql"];
if (sqlite3_open([filePath UTF8String], &_mySQL)!=SQLITE_OK) {
NSLog(@"open error");
return 0;
}
NSLog(@"open ok");
2.创建表
NSString *createTablesql = @"create TABLE IF NOT EXISTS Student (id integer primary key autoincrement,name varchar(20),address varchar(20),icon blob)";
char *error = nil;
if (sqlite3_exec(_mySQL, [createTablesql UTF8String], nil, nil, &error)!=SQLITE_OK) {
NSLog(@"creat table error");
return 0;
}
NSLog(@"creat table ok");
3.插入数据
NSString *insertSql = @"insert into Student (name,address,icon) values (?,?,?)";
sqlite3_stmt *statement;
if (sqlite3_prepare_v2(mysql, [insertSql UTF8String], -1, &statement, NULL) != SQLITE_OK) {
NSLog(@"insert prepare error");
return;
}else{
NSLog(@"insert prepare ok");
NSData * imageData = UIImagePNGRepresentation(self.iconImageView.image);
sqlite3_bind_text(statement, 1, [_nameTextField.text UTF8String], -1, NULL);
sqlite3_bind_text(statement, 2, [_addTextField.text UTF8String], -1, NULL);
sqlite3_bind_blob(statement, 3, [imageData bytes], (int)[imageData length], NULL);
if(sqlite3_step(statement)!=SQLITE_DONE){
NSLog(@"insert error");
}else{
NSLog(@"insert ok");
}
}
sqlite3_finalize(statement);
4.查询数据
NSString *selectSql = @"select * from Student";
sqlite3_stmt *statement;
if (sqlite3_prepare_v2(mysql, [selectSql UTF8String], -1, &statement, NULL) != SQLITE_OK) {
NSLog(@"read prepare error");
return;
}else{
NSLog(@"read prepare ok");
while (sqlite3_step(statement)==SQLITE_ROW) {
Student * stu = [[Student alloc]init];
char * name = (char *)sqlite3_column_text(statement, 1);
char * address = (char *)sqlite3_column_text(statement, 2);
Byte * bytes = (Byte *)sqlite3_column_blob(statement, 3);
int length = sqlite3_column_bytes(statement, 3);
NSData * data = [NSData dataWithBytes:bytes length:length];
UIImage * image = [UIImage imageWithData:data];
stu.name = [NSString stringWithUTF8String:name];
stu.address = [NSString stringWithUTF8String:address];
stu.icon = image;
[_studentArray addObject:stu];
}
}
sqlite--代码操作的更多相关文章
- Unity3D连接sqlite数据库操作C#版
unity3d有自己对应的sqlite.dll分别需要三个文件 1.Mono.Data.Sqlite.dll 在unity安装文件“Unity\Editor\Data\MonoBleedingEdge ...
- 实验8 SQLite数据库操作
实验报告 课程名称 实验8 SQLite数据库操作 实验日期 2016.5.6 实验项目名称 多媒体应用开发 实验地点 S30010 实验类型 □验证型 √设计型 □综合型 学 时 一 ...
- 我的Android六章:Android中SQLite数据库操作
今天学习的内容是Android中的SQLite数据库操作,在讲解这个内容之前小编在前面有一篇博客也是讲解了SQLite数据库的操作,而那篇博客的讲解是讲述了 如何在Window中通过DOM来操作数据库 ...
- SQLite CRUD操作
SQLite CRUD操作代码实例: 1:首先创建一个继承了SQLiteOpenHelper类的MyDatabaseHelper类.实现他的onCreate(SQLiteDatabase db) on ...
- iOS 中SQLite数据库操作
在iOS中实现SQLite数据库的操作:1.导入框架(libsqlite3.0.tbd) 2.导入头文件<sqlite3.h> 3.实现数据的增删改查 实现简单 SQLite数据库操作 的 ...
- 安卓SQLite数据库操作,半小时开发新闻管理系统,纯干货
本教程致力于可以快速的学习安卓软件开发,希望能通过一系列自己手写的教程,帮助正在学习或想要学习安卓开发的同仁. 本教程由今日头条-全栈攻城狮号首发,都是一个字一个字码的.请尊重劳动成果,转载请注明出处 ...
- 实验八 sqlite数据库操作
实验报告 课程名称 基于Android平台移动互联网开发 实验日期 2016年5月3日 实验项目名称 SQLite数据库操作 实验地点 S30010 实验类型 □验证型 √设计型 □综合型 ...
- windows phone 8.1开发SQlite数据库操作详解
原文出自:http://www.bcmeng.com/windows-phone-sqlite1/ 本文小梦将和大家分享WP8.1中SQlite数据库的基本操作:(最后有整个示例的源码)(希望能通过本 ...
- 【Android】实验8 SQLite数据库操作2016.5.12
实验8 SQLite数据库操作 [目的] 设计一个个人通讯录,掌握Android平台下的数据库开发,该个人通讯录主要包括联系人列表和联系人详细信息等界面. [要求] 程序主界面是通讯录的目录显示手机 ...
- SQLite C++操作类
为了方便SQLite的使用,封装了一个SQLite的C++类,同时支持ANSI 和UNICODE编码.代码如下: 头文件(SQLite.h) [cpp] view plaincopy /***** ...
随机推荐
- rtmp协议介绍
概述: •tcp建立连接. •rtmp握手. •客户端与服务器对建立rtmp连接达成一致. •创建rtmp流 •客户端与服务器对play或者Publish达成一致. •客户端开始传送数据到服务器. • ...
- span里设置高度
众所周知,SPAN元素内单纯设置height是没有效果的. 需要设置SPAN的高度,需要将其设置成block元素. display:block 但这样会导致span占据了整一行,我们通常不希望这样. ...
- php本页面调试报错配置
ini_set('display_errors', 'On'); ini_set('memory_limit', '64M'); //报错,详细 error_reporting(E_ALL); //不 ...
- phpcms v9联动菜单的调用方法_详解get_linkage函数
phpcms v9联动菜单调用方法[此为内容页调用方法]: {get_linkage($areaid,1,' >> ',1)} 显示效果: phpcms吧 >> 模板下载 &g ...
- pip安装第三方库以及版本
这篇blog只是写给自己看看的. 今天突然遇到sqlalchemy映射到数据库时,一个字段类型是datetime(6),我这边死活访问不上,之前一直没有问题,最后查明原因,原来是第三方库的版本问题,真 ...
- Andriod手势密码破解
★ 引子 之前在Freebuf上看到一片文章讲Andriod的手势密码加密原理,觉得比较有意思,所以就写了一个小程序试试. ★ 原理 Android的手势密码加密原理很简单: 先 ...
- 可控制转速CSS3旋转风车特效
以前制作网页动画一般使用javascript,现在已经有越来越多动动画使用纯CSS实现,并且动画的控制也可以使用CSS3实现,因为CSS 3来了,CSS 3的动画功能确实强大.以下是一个纯CSS3制作 ...
- 使用国内镜像更新sdk方法
使用国内的镜像资源: 1.mirrors.neusoft.edu.cn //东软信息学院 2.ubuntu.buct.edu.cn/ubuntu.buct.cn //北京化工大学 3.mirrors. ...
- Android 字体颜色变化(点击)
在开发的过程中,经常会遇到这样的场景,点击按钮,背景颜色发生变化:在drawable中,定义xxx.xml(selector) <selector xmlns:android="htt ...
- android 通过post方式提交数据的最简便有效的方法
public boolean post(String username, String password) throws Exception { username = URLEncoder.encod ...