您的位置:首页 > 数据库

(一个代码学会c语言操作数据库)linux上通过c语言操作数据库实现基本的学生信息管理系统(增、删、查、改‘显示)

2014-11-22 14:38 1861 查看
这里就不再说什么,上一个博客说的很清楚

不了解的可以看http://blog.csdn.net/guoqianqian5812/article/details/41381221

只要把下面的例子理解了,那么通过C API操作数据库就没啥难的了

#include <stdio.h>

#include <mysql.h>

#include <string.h>

#include <stdlib.h>

MYSQL mysql; //mysql连接

MYSQL_RES *res; //这个结构代表返回行的一个查询结果集

MYSQL_ROW row; //一个行数据的类型安全(type-safe)的表示

char query[100]; //查询语句

char order[100];

void STRINSERT(int count)

{

char *delim="_";

char *p;

char *q;

char temp[20];

scanf("%s",temp);

strcpy(order,strtok(query,delim));

strcat(order,temp);

int i=1;

while((p=strtok(NULL,delim)))

{

strcat(order,p);

if(i<count)

{

scanf("%s",temp);

i++;

}

else

{

break;

}

strcat(order,temp);

}

strcpy(query,order);

}

void show()

{

int t,r;

strcpy(query," select * from qq");

t=mysql_real_query(&mysql,query,(unsigned int)strlen(query));//执行指定为计数字符串的SQL查询。

if(t)

{

printf("执行显示时出现异常: %s",mysql_error(&mysql));

}

res=mysql_store_result(&mysql);//检索完整的结果集至客户端。

printf("姓名\t学号\t年龄\t\n");

while(row=mysql_fetch_row(res))

{

for(t=0;t<mysql_num_fields(res);t++)

{

printf("%s\t" ,row[t]);

}

printf("\n");

}

mysql_free_result(res);//释放结果集使用的内存。

}

void insert()

{

int t,r;

printf("请输入姓名、学号、年龄\n");//安一次回车为输入一项

strcpy(query,"insert into qq(sname,sno,sage) values('_','_',_)");

STRINSERT(3);//转化为命令函数

t=mysql_real_query(&mysql,query,(unsigned int)strlen(query));

if(t)

{

printf("执行插入时出现异常: %s",mysql_error(&mysql));

}

else

{

printf("添加成功\n");

}

}

void delete()

{

int t,r;

printf("请输入你要删除学生的学号:\n");

strcpy(query,"delete from qq where sno='_'");

STRINSERT(1);

t=mysql_real_query(&mysql,query,(unsigned int)strlen(query));

if(t)

{

printf("执行删除时出现异常: %s",mysql_error(&mysql));

}

}

void search()

{

int t,r;

printf("请输入你要查找学生的信息:\n");

strcpy(query,"select * from qq where sno='_'");

STRINSERT(1);

t=mysql_real_query(&mysql,query,(unsigned int)strlen(query));//执行指定为计数字符串的SQL查询。

if(t)

{

printf("执行查询时出现异常: %s",mysql_error(&mysql));

}

res=mysql_store_result(&mysql);//检索完整的结果集至客户端。

printf("姓名\t学号\t年龄\t\n");

while(row=mysql_fetch_row(res))

{

for(t=0;t<mysql_num_fields(res);t++)

{

printf("%s\t" ,row[t]);

}

printf("\n");

}

mysql_free_result(res);//释放结果集使用的内存。

}

void updata()

{

int t,r;

printf("请输入新的学号和你要修改学生的学号:\n");

strcpy(query,"update qq set sno='_' where sno='_'");

STRINSERT(2);

t=mysql_real_query(&mysql,query,(unsigned int)strlen(query));

if(t)

{

printf("执行更新时出现异常: %s",mysql_error(&mysql));

}

else

{

printf("修改成功\n");

}

}

void menu()

{

printf("\t\t1、显示学生信息\n");

printf("\t\t2、添加学生信息\n");

printf("\t\t3、删除学生信息\n");

printf("\t\t4、查找学生信息\n");

printf("\t\t5、修改学生信息\n");

printf("\t\t0、退出系统 \n");

}

void quit()

{

mysql_close(&mysql);

printf("数据库已关闭 \n");

exit(1);

}

int main()

{

mysql_init(&mysql);

if (!mysql_real_connect(&mysql,"localhost", "root", NULL, "test",0,NULL,0))

{

printf( "Error connecting to database: %s",mysql_error(&mysql));

}

else

{

printf("Connected...\n");

}

int choice;

while(1)

{

menu();

printf("\n\t请选择:");

scanf("%d",&choice);

switch(choice)

{

case 1:show();break;

case 2:insert();break;

case 3:delete();break;

case 4:search();break;

case 5:updata();break;

case 0:quit();

}

}

return 0;

}

运行结果如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐