1. #ifndef __MYDB_H 
  2. #define __MYDB_H 
  3.  
  4. #include <stdio.h> 
  5. #include <string.h> 
  6. #include "sqlite3.h" 
  7. #define DB_NAME     "test.db" 
  8. #define TABLE_NAME   "student" 
  9. #define TRUE        1 
  10. #define FALSE       0 
  11. int open_db(); 
  12. int modefiy_data(); 
  13. int insert_data(); 
  14. int search_data(); 
  15.  
  16.  
  17. #endif 

 

  1. #include "mydb.h" 
  2.  
  3. sqlite3 *pdb = NULL ; 
  4. char *szErrMsg = 0 ; 
  5. /* 
  6. *@brief //打开数据库 
  7. *@param  pdb 类型为sqlite  
  8. */ 
  9. int open_db() 
  10.     int rc; 
  11.     rc = sqlite3_open(DB_NAME , &pdb); 
  12.     if(rc) 
  13.     { 
  14.         fprintf(stderr , "can't open database: %s\n",sqlite3_errmsg(pdb)); 
  15.         sqlite3_close(pdb) ; 
  16.         return -1; 
  17.     } 
  18.     return 0; 
  19. /* 
  20.  
  21.  
  22. //@brif 数据库语句执行 
  23.  
  24.  
  25. int creat_table() 
  26. { 
  27.     int rc; 
  28.     char *strsql = "create table student(sid varchar(10) not null primary key , sname varchar(10)  not null , time Datetime )"; 
  29.     sqlite3_exec(pdb , strsql , 0 , 0 ,&szErrMsg); 
  30.     if(rc != 0) 
  31.     { 
  32.         fprintf(stderr , "can't open database: %s\n",sqlite3_errmsg(pdb)); 
  33.         sqlite3_close(pdb); 
  34.         return -1; 
  35.     }    
  36.     return 0; 
  37. } 
  38.  
  39. */ 
  40. int modefiy_data() 
  41.     if(open_db != 0) 
  42.     { 
  43.         open_db(); 
  44.     } 
  45.     return 0; 
  46. /* 
  47. *数据的添加 
  48. */ 
  49.  
  50. int insert_data()        
  51.     int flag = TRUE; 
  52.     char buff[1024]; 
  53.     char *strsql; 
  54.     int rc = 0 ; 
  55.     char temp[3][20]; 
  56.     strsql = buff; 
  57.     if(open_db != 0) 
  58.     { 
  59.         open_db(); 
  60.     } 
  61.     strcpy(strsql , "insert into "); 
  62.     strcat(strsql , TABLE_NAME); 
  63.     strcat(strsql , " values(? , ? , ?);"); 
  64.  
  65.     sqlite3_stmt  *stmt = NULL; 
  66.     rc = sqlite3_prepare_v2(pdb , strsql , strlen(strsql) , &stmt , NULL); 
  67.     if(rc != SQLITE_OK) 
  68.     { 
  69.         if(stmt) 
  70.         { 
  71.             sqlite3_finalize(stmt); 
  72.         } 
  73.         sqlite3_close(pdb); 
  74.         return -1; 
  75.     } 
  76.  
  77.     while(flag)  
  78.     {        
  79.             getchar(); 
  80.             memset(temp,0,sizeof(temp)); 
  81.             printf("学号:"); 
  82.             scanf("%s", temp[0]); 
  83.             printf("姓名:"); 
  84.             scanf("%s", temp[1]); 
  85.             printf("性别:"); 
  86.             scanf("%s", temp[2]); 
  87.  
  88.             //getchar(); 
  89.             sqlite3_bind_text( stmt , 1 , temp[0] , strlen(temp[0]), NULL); 
  90.              
  91.             sqlite3_bind_text( stmt , 2 , temp[1] , strlen(temp[1]), NULL); 
  92.              
  93.             sqlite3_bind_text( stmt , 3 , temp[2] , strlen(temp[2]), NULL); 
  94.             if(sqlite3_step(stmt) != SQLITE_DONE) 
  95.             {    
  96.                  
  97.                 sqlite3_finalize(stmt); 
  98.                 sqlite3_close(pdb); 
  99.                 printf(" faile \n" ); 
  100.                 return 0; 
  101.             }        
  102.         sqlite3_reset(stmt); 
  103.         printf("Do you want to do insert ?[0 ~ 1]:"); 
  104.         scanf("%d", &flag); 
  105.     } 
  106.     sqlite3_finalize(stmt); 
  107.     printf("insert success!\n"); 
  108.     sqlite3_close(pdb); 
  109.      
  110.      
  111.     return 0; 
  112.      
  113. /* 
  114. *   数据的查询 
  115. */ 
  116. int search_data() 
  117.     int rc; 
  118.     if(open_db != 0) 
  119.     { 
  120.         open_db(); 
  121.     } 
  122.     char *strsql = "select * from student" ; 
  123.  
  124.     sqlite3_stmt  *stmt = NULL; 
  125.  
  126.     rc = sqlite3_prepare_v2(pdb , strsql , strlen(strsql) , &stmt , NULL); 
  127.     if(rc != SQLITE_OK) 
  128.     { 
  129.         if(stmt) 
  130.         { 
  131.             sqlite3_finalize(stmt); 
  132.         } 
  133.         sqlite3_close(pdb); 
  134.         return -1; 
  135.     } 
  136.     int nColumn = sqlite3_column_count(stmt); 
  137.     int vtype , i; 
  138.     do{  
  139.         rc = sqlite3_step(stmt); 
  140.         if(rc == SQLITE_ROW) 
  141.         { 
  142.              
  143.             for(i = 0 ; i < nColumn ; i++ ) 
  144.             { 
  145.              
  146.                 vtype = sqlite3_column_type(stmt , i); 
  147.                 if(vtype == SQLITE_INTEGER) 
  148.                 { 
  149.                     printf("%s : %d \n" , sqlite3_column_name(stmt , i) , sqlite3_column_int(stmt , i)); 
  150.                 } 
  151.                 else if(vtype == SQLITE_TEXT) 
  152.                 { 
  153.                     printf("%s : %s \n" , sqlite3_column_name(stmt , i) , sqlite3_column_text(stmt , i)); 
  154.                 } 
  155.                 else if(vtype == SQLITE_NULL) 
  156.                 { 
  157.                     printf("no values\n"); 
  158.                 } 
  159.             } 
  160.             printf("\n****************\n"); 
  161.              
  162.         } 
  163.         else if(rc == SQLITE_DONE) 
  164.         { 
  165.             printf("Select finish\n"); 
  166.             break
  167.         } 
  168.         else 
  169.         { 
  170.             printf("Select faile\n"); 
  171.             sqlite3_finalize(stmt); 
  172.             break
  173.              
  174.         } 
  175.      
  176.          
  177.     }while(1); 
  178.     sqlite3_finalize(stmt); 
  179.     sqlite3_close(pdb); 
  180.     return 0; 

 

  1. #include <stdio.h> 
  2. #include "mydb.h" 
  3.  
  4. int main(int argc , char **argv) 
  5.     int n; 
  6.     printf("\n 1. 添加 2.修改 3.删除  4.查看\n "); 
  7.     printf("choose[1 - 4]:"); 
  8.     scanf("%d" , &n); 
  9.     switch(n) 
  10.     { 
  11.         case 1: 
  12.              
  13.             insert_data(); 
  14.         //  printf("添加成功\n"); 
  15.             break
  16.         case 2: 
  17.             printf("修改成功\n"); 
  18.             break
  19.         case 3: 
  20.             printf("删除成功\n"); 
  21.             break
  22.         case 4: 
  23.             search_data(); 
  24.             printf("查看成功\n"); 
  25.             break
  26.         default : 
  27.             printf("\nerror\n"); 
  28.     } 
  29.     return 0;