简单的数据库操作(表的创建。记录的插入,删除,显示)
2016-11-18 10:27
489 查看
#include <stdio.h> #include <stdlib.h> #include <sqlite3.h> int create_table(sqlite3*db)//创建表,未空的打开 { char *errmsg = NULL; char *sql; sql = "create table if not exists mytable (id integer primary key,name text);"; if(SQLITE_OK != sqlite3_exec(db,sql,NULL,NULL,&errmsg)) { printf("create table error!%s\n",errmsg); exit(-1); } return 0; } int insert_records(sqlite3*db)//插入记录 { char *errmsg = NULL; char sql[100]; int id; char name[10]; int num; int i; printf("enter number of records:"); scanf("%d",&num); for(i=0;i<num;i++) { printf("enter a id:"); scanf("%d",&id); printf("enter a name:"); scanf("%s",name); sprintf(sql,"insert into mytable (id,name) values (%d,'%s');",id,name); if(SQLITE_OK != sqlite3_exec(db,sql,NULL,NULL,&errmsg)) { printf("insert error!%s\n",errmsg); exit(-1); } } return 0; } int displaycb(void*para,int col_count,char**col_value,char**col_name)//显示表记录的回调函数 { int i; printf("total num %d\n",col_count); for(i = 0; i < col_count; i++) { printf("col_name:%s--->col_value:%s\n",col_name[i],col_value[i]); } printf("***********************\n"); return 0; } int inquire_usecb(sqlite3 *db)//显示表记录 { char *errmsg = NULL; char *sql; sql = "select * from mytable;"; if(SQLITE_OK != sqlite3_exec(db,sql,displaycb,NULL,&errmsg)) { printf("select error!%s\n",errmsg); exit(-1); } return 0; } int delate_record(sqlite3 * db)//删除一行表记录 { char *errmsg = NULL; char sql[100]; int id; printf("enter the dalate id:"); scanf("%d",&id); sprintf(sql,"delete from mytable where id = %d;",id); if(SQLITE_OK != sqlite3_exec(db,sql,NULL,NULL,&errmsg)) { printf("select error!%s\n",errmsg); exit(-1); } return 0; } int inquire_usegt(sqlite3*db)//显示表记录,用sqlite3_get_table函数 { int row; int column; char **aresult; char *errmsg = NULL; char *sql; int i; sql = "select * from mytable;"; if(SQLITE_OK != sqlite3_get_table(db,sql,&aresult,&row,&column,&errmsg)) { printf("select error!%s\n",errmsg); exit(-1); } for(i = 0; i < (row + 1) * column ; i++) { printf("%10s",aresult[i]); if((i + 1) % column == 0) { printf("\n"); } } sqlite3_free_table(aresult); return 0; } int main() { sqlite3 * db = NULL; int ret; ret = sqlite3_open("mydatabase.db",&db); if(ret != SQLITE_OK) { perror("open mydatabase.db error!\n"); exit(-1); } else { printf("open mydatabase.db successfully\n"); } create_table(db); insert_records(db); inquire_usecb(db); delate_record(db); inquire_usegt(db); sqlite3_close(db); return 0; }
相关文章推荐
- (C语言版)链表(四)——实现双向循环链表创建、插入、删除、释放内存等简单操作
- Linux C编程 简单电话薄(从文件中读取记录,支持插入、删除和保存操作)
- (C语言版)链表(一)——实现单向链表创建、插入、删除等简单操作(包含个人理解说明及注释,新手跟着写代码)
- HiveQL 数据定义语言使用(一)—Hive中数据库的创建、显示、删除和修改操作介绍
- shell脚本操作mysql数据库—创建数据库,在该数据库中创建表(插入,查询,更新,删除操作也可以做)
- FormView 显示、更新、插入、删除数据库操作[ASP.NET源代码](二)
- FormView 显示、更新、插入、删除数据库操作[ASP.NET源代码](一)
- MySQL基本操作:数据库的创建、查询、更新、插入、删除表格
- JDBC 数据库连接 创建表格、插入、查询、删除、修改数据 基本操作
- 常见的数据库操作:创建,查看,插入,删除,主键(mysql)
- (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作
- VC 操作ACCESS的创建数据库,表,添加修改删除记录等
- (C++版)链表(三)——实现双向链表的创建、插入、删除等简单操作
- 数据库sql语句笔试题--包含创建数据库、表、插入记录、查询等操作
- (C++版)链表(四)——实现双向循环链表创建、插入、删除等简单操作
- FormView 显示、更新、插入、删除数据库操作[ASP.NET源代码](二)
- FormView 显示、更新、插入、删除数据库操作[ASP.NET源代码](一)
- (C语言版)链表(四)——实现双向循环链表创建、插入、删除、释放内存等简单操作
- (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作
- 数据结构:链表创建、显示、求和、插入、删除等操作的代码实现