(未全部完成)
主函数
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