简单的数据库操作(表的创建。记录的插入,删除,显示)

    xiaoxiao2021-11-20  60

    #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("s",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; }
    转载请注明原文地址: https://ju.6miu.com/read-678393.html

    最新回复(0)