1 #include <head.h>
2
3 int do_insert(sqlite3*db);
4 int do_delete(sqlite3*db);
5 int do_update(sqlite3*db);
6 int do_select(sqlite3*db);
7 int main(int argc, const char *argv[])
8 {
9 sqlite3* db;
10 if(sqlite3_open("./sq.db",&db)!=SQLITE_OK)
11 {
12 fprintf(stderr,"sqlite3_open:%s,errcode:%d __%d__\n",sqlite3_errmsg(db),sqlite3_errcode(db),__LINE__);
13 return -1;
14 }
15 printf("sq.db open success\n");
16
17 //创建表格
18 char buf[128]="create table if not exists Stu(id int,name char,socer float);";
19 char *errmsg=NULL;
20 if(sqlite3_exec(db,buf,NULL,NULL,&errmsg)!=SQLITE_OK)
21 {
22 fprintf(stderr,"sqlite3_exec:%s,errcode:%d __%d__\n",sqlite3_errmsg(db),sqlite3_errcode(db),__LINE__);
23 return -1;
24 }
25 int cloose;
26 while(1)
27 {
28 system("clear");
29 printf("________________________\n");
30 printf("__________1.插入________\n");
31 printf("__________2.删除________\n");
32 printf("__________3.修改________\n");
33 printf("__________4.查询________\n");
34 printf("__________5.退出________\n");
35 printf("________________________\n");
36 printf("请输入>>> ");
37 scanf("%d",&cloose);
38 while(getchar()!=10);
39 switch(cloose)
40 {
41 case 1:
42 do_insert(db);
43 break;
44 case 2:
45 do_delete(db);
46 break;
47 case 3:
48 do_update(db);
49 break;
50 case 4:
51 do_select(db);
52 break;
53 case 5:
54 goto SND;
55 break;
56 default:
57 printf("请重新输入>>>");
58 }
59 printf("输入任意字符清屏>>>");
60 while(getchar()!=10);
61 }
62 SND:
63 if(sqlite3_close(db)!=SQLITE_OK)
64 {
65 fprintf(stderr,"sqlite3_close failed __%d__\n",__LINE__);
66 return -1;
67 }
68 printf("sq.db close success\n");
69 return 0;
70 }
71
72
73 /*
74 * function: 插入数据
75 * @param [ in]
76 * @param [out]
77 * @return
78 */
79
80 int do_insert(sqlite3*db)
81 {
82 int id;
83 char name[20];
84 float socer;
85 printf("请输入id>>>");
86 scanf("%d",&id);
87 getchar();
88
89 printf("请输入name>>>");
90 scanf("%s",name);
91 getchar();
92
93 printf("请输入socer>>>");
94 scanf("%g",&socer);
95 getchar();
96
97 char buf[128]="";
98 sprintf(buf,"insert into stu values(%d,\"%s\",%g);",id,name,socer);
99
100 char*errmsg=NULL;
101 if(sqlite3_exec(db,buf,NULL,NULL,&errmsg)!=SQLITE_OK)
102 {
103 fprintf(stderr,"sqlite3_exec:%s __%d__\n",errmsg,__LINE__);
104 return -1;
105 }
106 printf("插入stu表格成功\n");
107 return 0;
108
109 }
110
111 /*
112 * function: 删除数据
113 * @param [ in]
114 * @param [out]
115 * @return
116 */
117 int do_delete(sqlite3*db)
118 {
119 int id;
120 printf("请输入要删除的数据>>>");
121 scanf("%d",&id);
122 getchar();
123
124 char buf[128]="";
125 sprintf(buf,"delete from stu where id=%d;",id);
126 char*errmsg=NULL;
127 if(sqlite3_exec(db,buf,NULL,NULL,&errmsg)!=SQLITE_OK)
128 {
129 fprintf(stderr,"sqlite3_exec:%s __%d__\n",errmsg,__LINE__);
130 return -1;
131 }
132 printf("删除数据成功\n");
133
134 return 0;
135 }
136
137 /*
138 * function: 修改数据
139 * @param [ in]
140 * @param [out]
141 * @return
142 */
143 int do_update(sqlite3*db)
144 {
145 int id;
146 printf("请输入要修改的id>>>");
147 scanf("%d",&id);
148 getchar();
149
150 float socer;
151 printf("请输入修改后的成绩>>>");
152 scanf("%g",&socer);
153 getchar();
154
155 char buf[128]="";
156 sprintf(buf,"update stu set socer=%g where id=%d;",socer,id);
157 char*errmsg=NULL;
158
159 if(sqlite3_exec(db,buf,NULL,NULL,&errmsg)!=SQLITE_OK)
160 {
161 fprintf(stderr,"sqlite3_exec:%s __%d__\n",errmsg,__LINE__);
162 return -1;
163 }
164 printf("修改成功\n");
165 return 0;
166
167 }
168
169
170 int select_callback(void* arg,int column,char**column_txet,char**column_name)
171 {
172 if(0==*(int*)arg)
173 {
174 for(int i=0;i<column;i++)
175 {
176 printf("%s\t",column_name[i]);
177 }
178 putchar(10);
179 *(int*)arg=1;
180 }
181
182 for(int i=0;i<column;i++)
183 {
184 printf("%s\t",column_txet[i]);
185 }
186 putchar(10);
187
188 return 0;
189 }
190 /*
191 * function: 查询数据
192 * @param [ in]
193 * @param [out]
194 * @return
195 */
196 int do_select(sqlite3*db)
197 {
198 char buf[128]="select * from stu;";
199 char*errmsg=NULL;
200 int flag=0;
201 if(sqlite3_exec(db,buf,select_callback,&flag,&errmsg)!=SQLITE_OK)
202 {
203 fprintf(stderr,"sqlite3_exec:%s __%d__\n",errmsg,__LINE__);
204 return -1;
205 }
206 printf("查询数据成功\n");
207
208 return 0;
209 }
210
211
网络编程数据库
最新推荐文章于 2024-08-14 21:17:33 发布