通讯录(使用数据库)

#include
#include
#include




sqlite3 *db;
char *errmsg;


void create();
void insert();
void delete();
void update();
void query();






int main() 
{
    printf("1 创建列表\n");
    printf("2 输入数据\n");
    printf("3 删除数据\n");
    printf("4 修改数据\n");
    printf("5 遍历\n");
    printf("choose num:\n");
    
    int ch;
    scanf("%d",&ch);
    switch(ch)
    {
        case 1:
{
   create();
   break;
}
case 2:
{
   insert();
   break;
}
case 3:
{
   delete();
   break;
}
case 4:
{
   update();
   break;
}
case 5:
{
   query();
   break;
}
    
    }
   
    return 0;
}
void create()

    int ret1 = sqlite3_open("info.db",&db);
    if(SQLITE_OK != ret1)
    {
        perror("open");
exit(1);
    }
    
    char *sql = "create table txl(name text,number integer primary key, address text);";
    
    int ret2 = sqlite3_exec(db, sql, NULL, NULL, &errmsg);
    if(SQLITE_OK != ret2)
    {
        printf("creat error: &s\n",errmsg);
exit(2);
    }
    
}
void insert()
{
    int ret1 = sqlite3_open("./info.db",&db);
    if(SQLITE_OK != ret1)
    {
exit(7);
    }
    char sql1[1024] = {0};
    char name[20];
    char address[20];
    int number;
    printf("please enter name number address\n");
    scanf("%s %d %s", name, &number, address);
    sprintf(sql1,"insert into txl values('%s', %d,'%s');", name, number, address);
    int ret3 = sqlite3_exec(db, sql1, NULL, NULL, &errmsg);
    if(SQLITE_OK != ret3)
    {
        printf("insert error: %s\n",errmsg);
exit(3);
    }
}   
void delete()
{
    int ret4 = sqlite3_open("./info.db",&db);
    if(SQLITE_OK != ret4)
    {
exit(8);
    }
    char sql2[1024] = {0};
    char name[20];
    printf("please enter delete number\n");
    scanf("%s",&name);
    sprintf(sql2, "delete from txl where name = '%s';", name);
    int ret5 = sqlite3_exec(db, sql2, NULL, NULL, &errmsg);
    if(SQLITE_OK != ret5)
    {
        printf("error: %s\n", errmsg);
exit(4);
    }
}
void update()
{
    int ret6 = sqlite3_open("./info.db", &db);
    if(SQLITE_OK != ret6)
    {
exit(9);
    }
    char name1[20];
    int num1;
    printf("please enter old name and new number\n");
    scanf("%s %d",name1,&num1);
    char sql3[1024] = {0};
    sprintf(sql3,"update txl set number = %d where name = '%s';",num1, name1);
    int ret7 = sqlite3_exec(db, sql3, NULL, NULL, &errmsg);
    if(SQLITE_OK != ret7)
    {
        printf("error update : %s\n",errmsg);
        exit(5);
    }




}
void query()
{
    
    int row,column;
    char **result;
    int ret8 = sqlite3_open("./info.db",&db);
    if(SQLITE_OK != ret8)
    {
exit(10);
    }
    char sql4[1024] = "select * from txl;";


    int ret9 = sqlite3_get_table(db, sql4, &result, &row, &column, &errmsg);
    if(SQLITE_OK != ret9)
    {
        printf("error query :%s\n",errmsg);
exit(6);
    }


    printf("row = %d column = %d\n",row,column);


    int i,j;
    for(i = 0; i < column; i++)
    {
        printf("%s\n",result[i]);
    }


    for(i = 0; i <= row; i++)
    {
        for( j = 0; j {
   printf("%s|",result[i * column + j]);
}
        printf("\n");
    }
    sqlite3_free_table(result);
}

你可能感兴趣的:(通讯录(使用数据库))