VS2019获取数据库数据

1.数据库的设计

(1)创建学校库

create database school;
use school;

(2)创建老师表

#创建老师表
create table class(id int primary key auto_increment,
				class_name  varchar(32) not null,
				teacher  varchar(32) not null);
#插入记录
insert into class values(101,'高一1班','吴老师');
insert into class(class_name,teacher)values('高一2班','何老师');
insert into class(class_name,teacher)values('高一3班','孟老师');
insert into class(class_name,teacher)values('高一4班','张老师');
#查询插入的记录
select* from class ;

在这里插入图片描述

2.从VS2019里连接数据库

(1)连接school库

*功能:连接数据库
*输入:数据库句柄
*返回值:	true  - 成功   false - 失败	
bool connect_db(MYSQL &mysql) {
	//1初始化数据库句柄
	mysql_init(&mysql);
	//2设置数据库字符编码
	mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gbk");
	//3连接数据库   DB_PASSWORD为登录数据库的密码,这里使用宏定义
	if (mysql_real_connect(&mysql, "127.0.0.1", "root", DB_PASSWORD, "school", 3306, NULL, 0) == NULL) {
		cout << "连接失败,错误原因:" << mysql_error(&mysql) << endl;
		return false;
	}else {
		cout << "连接成功" << endl;
		return true;
	}
}

(2)完整代码

#include<mysql.h>
#include<iostream>
#include<string>

#define DB_PASSWORD "123456789"
using namespace std;

typedef struct student_info
{
	int classid;        //班级id
	string class_name;	//班级名字
	string teacher;		//班级班主任
}studentinfo;
int main() {
	MYSQL mysql;
	char sql[256];
	MYSQL_RES* res;//查询结果集
	MYSQL_ROW row; //记录结构体
	studentinfo class_DB;
	int in_class;

	//1登录数据库
	if (connect_db(mysql)==false) {
		return 0;
	}
	
	//2查询记录
	cout << "请输入你所在的班级:";
	cin >> in_class;

	snprintf(sql,256," select *from class where id=%d;", in_class);
	bool ret = mysql_query(&mysql, sql);
	if (ret) {//成功返回0
		cout << "数据库查询出错,错误原因:" << mysql_error(&mysql);
		mysql_close(&mysql);//关闭mysql
		return false;
	}

	//3获取查询的结果
	res = mysql_store_result(&mysql);//获取查询的结果集
	row = mysql_fetch_row(res);		

	if (row == NULL) {//没有找到记录
		mysql_free_result(res); //释放结果集
		mysql_close(&mysql);	//关闭数据库
		return 0;
	}

	class_DB.classid = atoi(row[0]);//字符串转成整形
	class_DB.class_name = row[1];
	class_DB.teacher = row[2];
	cout <<"班主任:" << class_DB.teacher << "	"
		 <<"所教班级:" << class_DB.class_name<<endl;

	//4关闭数据库
	mysql_free_result(res);//关闭结果集 
	mysql_close(&mysql);//关闭数据库

	system("pause");
	return 0;
}

(3)测试结果

在这里插入图片描述

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江凡心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值