sqlite3数据库的增删改查

(未全部完成)

主函数

  1 #include"head.h"
  2 
  3 /*  
  4 flag = 0;//退出
  5 flag = 1;//返回至主菜单
  6 flag = 2;//返回上一层
  7 
  8 
  9 */
 10 
 11 
 12 void op_table(sqlite3 *db,int* flag);
 13 
 14 void op_data(sqlite3 *db,int *flag);
 15 
 16 
 17 
 18 int main(int argc, const char *argv[])
 19 {
 20 
 21     int num = -1;
 22     int *flag = #
 23     sqlite3 *db=NULL;
 24     //创建数据库
 25     if(sqlite3_open("./data.db",&db) != SQLITE_OK)
 26     {
 27         fprintf(stderr,"sqlite3_open :%s errcode:%d\n ",sqlite3_errmsg(db),sqlite3_errcode(db));
 28         return -1;
 29     }
 30     printf("create table data sucess\n");
 31 
 32     //创建表格
 33     char sql[128] = "create table if not exists stu (id int,name char,score float);";
 34     char *errmsg = NULL;
 35     if(sqlite3_exec(db,sql,NULL,NULL,&errmsg) != SQLITE_OK)
 36     {
 37         fprintf(stderr,"line:%d sqlite3_exec:%s\n",__LINE__,errmsg);
 38         return -1;
 39     }
 40 
 41     int c = -1;
 42     while(1)
 43     {
 44         system("clear");
 45         printf("---------------------------------\n");
 46         printf("------------1.操作数据库---------\n");
 47         printf("------------2.操作表格-----------\n");
 48         printf("------------3.操作数据-----------\n");
 49         printf("------------4.退出登录-----------\n");
 50         printf("---------------------------------\n");
 51         printf("请输入>>>\n");
 52         c = getchar();
 53         while(getchar() != 10);
 54         switch(c)
 55         {
 56         case '1':
 57             //op_sqlite3();
 58             break;
 59         case '2':
 60             op_table(db,flag);
 61             break;
 62         case '3':
 63             op_data(db,flag);
 64             break;
 65         case '4':
 66             goto END;
 67             break;
 68         default:
 69             printf("输入错误,请重新输入\n");
 70         }
 71         if(0 == flag)
 72             goto END;
 73         printf("请输入任意字符清屏\n");
 74         while(getchar() != 0);
 75     }
 76 
 77     //关闭数据库
 78 END:
 79     if(sqlite3_close(db) != SQLITE_OK)
 80     {
 81         fprintf(stderr,"sqlite3_open :%s errcode:%d\n",sqlite3_errmsg(db),sqlite3_errcode(db));
 82         return -1;
 83     }
 84 
 85     return 0;
 86 }
 87 
 88 //操作表格
 89 void op_table(sqlite3 *db,int* flag)
 90 {
 91     int c = -1;
 92     while(1)
 93     {
 94         system("clear");
 95         printf("---------------------------------\n");
 96         printf("------------1.创建表格-----------\n");
 97         printf("------------2.删除数据-----------\n");
 98         printf("------------3.返回上一层---------\n");
 99         printf("------------4.退出登录-----------\n");
100         printf("---------------------------------\n");
101         printf("请输入>>>\n");
102         c = getchar();
103         while(getchar() != 10);
104         switch(c)
105         {
106         case '1':
107             creat_table(db);
108             break;
109         case '2':
110             //del_table();
111             break;
112         case '3':
113             while(1)
114                 sleep(1);
115             return;
116         case '4':
117             *flag = 0;
118             return;
119         default:
120             printf("输入错误,请重新输入\n");
121         }
122         printf("请输入任意字符清屏\n");
123         while(getchar() != 0);
124     }
125 
126 }
127 
128 
129 //操作数据
130 void op_data(sqlite3 *db,int *flag)
131 {
132     int c;
133     while(1)
134     {
135         system("clear");
136         printf("---------------------------------\n");
137         printf("------------1.增加数据-----------\n");
138         printf("------------2.删除数据-----------\n");
139         printf("------------3.更改数据-----------\n");
140         printf("------------4.查找数据-----------\n");
141         printf("------------4.返回上一层---------\n");
142         printf("------------4.返回主目录---------\n");
143         printf("---------------------------------\n");
144         printf("请输入>>>\n");
145         c = getchar();
146         while(getchar() != 10);
147         switch(c)
148         {
149         case '1':
150             data_add(db,flag);
151             break;
152         case '2':
153             //data_del(db,flag);
154             break;
155         case '3':
156             //data_change();
157             break;
158         case '4':
159             //data_find();
160             break;
161         case '5':
162         default:
163             printf("输入错误,请重新输入\n");
164         }
165         printf("请输入任意字符清屏\n");
166         while(getchar() != 0);
167     }
168 }
169                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
~                                                                                                                                                                                                                                                                                                                          

头文件

  1 #ifndef __HEAD_H__
  2 #define __HEAD_H__
  3 #include
  4 #include
  5 #include
  6 #include
  7 #include
  8 void creat_table(sqlite3 *db);
  9 
 10 void op_table(sqlite3 *db,int* flag);
 11 
 12 
 13 void data_add(sqlite3 *db,int *flag);
 14 
 15 
 16 #endif
 17 操作数据库/
 18 
 19 
 20 
 21 操作表格//
 22 //创建表格
 23 void creat_table(sqlite3 *db)
 24 {
 25     char buf[256]="";
 26     char arr[128]="";
 27     printf("请输入要创建的表名(字段名 数据类型,字段名 数据类型)>>>\n");
 28     fgets(arr,sizeof(arr),stdin);
 29     while(getchar() != 10);
 30 
 31     //字符串拼接
 32     char *errmsg = NULL;
 33     sprintf(buf,"create table if not exists %s;",buf);
 34     if(sqlite3_exec(db,buf,NULL,NULL,&errmsg) != SQLITE_OK)
 35     {
 36         fprintf(stderr,"creat_table:%s errcode:%d\n",errmsg,sqlite3_errcode(db));
 37     }
 38 }
 39 
 40 操作数据//
 41 
 42 //操作数据
 43 void data_add(sqlite3 *db,int *flag)
 44 {
 45     char buf[512]="";
 46     char arr[128]="";
 47     char arr1[128]="";
 48     char *errmsg = NULL;
 49     while(1)
 50     {
 51         system("clear");
 52         printf("-------------------------\n");
 53         printf("------1.全字段插入 ------\n");
 54         printf("------2.部分字段插入-----\n");
 55         printf("------3.返回上一层-------\n");
 56         printf("------4.返回主菜单-------\n");
 57         printf("-------------------------\n");
 58         int c = getchar();
 59         bzero(buf,sizeof(buf));
 60         bzero(arr,sizeof(arr));
 61         bzero(arr1,sizeof(arr1));
 62         while(getchar() != 10);
 63         switch(c)
 64         {
 65         case '1':
 66 
 67             //查找当前所在的表格名字并拼接到buf中
 68 
 69             printf("请输入要插入的数据>>>\n");
 70             printf("格式:(数据1,数据2,数据3...)\n");
 71             //需要查看个数并打印告知用户 printf("tips:")
 72 
 73             scanf("%s",arr);
 74             while(getchar() != 10);
 75             sprintf(buf,"insert into stu VALUES%s;",arr);
 76 
 77             //执行sql语句
 78             if(sqlite3_exec(db,buf,NULL,NULL,&errmsg) != SQLITE_OK)
 79             {
 80                 fprintf(stderr,"__%d__ data add:%s errcode:%d\n",__LINE__,errmsg,sqlite3_errcode(db));
 81                 return;
 82             }
 83             else
 84                 printf("data add sucess\n");
 85             break;
 86         case '2':
 87             getchar();
 88             printf("请输入要插入的字段名,格式:字段名1,字段名2...)>>>\n");
 89             scanf("%s",arr);
 90             getchar();
 91             printf("请输入要插入的数据,格式:(数据1,数据2...)>>>\n");
 92             scanf("%s",arr1);
 93             getchar();
 94             printf("%s\n",arr);
 95             printf("%s\n",arr1);
 96             sprintf(buf,"insert in stu %s VALUES %s;\n",arr,arr1);
 97             if(sqlite3_exec(db,buf,NULL,NULL,&errmsg) != SQLITE_OK)
 98             {
 99 
100                 fprintf(stderr,"__%d__ data add:%s errcode:%d\n",__LINE__,errmsg,sqlite3_errcode(db));
101                 return;
102             }
103             else
104                 printf("data_add sucess\n");
105             break;
106         case '3':
107             break;
108         }
109         printf("请输入任意字符清屏>>>\n");
110         while(getchar() != 10);
111     }                                                                                                                                                                                                                                                                        
112 }
113 
114 
115 
116 

你可能感兴趣的:(数据库,sqlite,c#,c语言)