网络编程数据库

  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 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值