#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);
}