基于C语言的控制数据库脚本
开发环境基础
编译器:Visual Studio Community 2022
数据库:MySQL 8.0.37 Community
前戏准备
- 复制“lib文件夹里的libmysql.dll文件”
例:
- 复制目录下include和lib两个文件夹的路径
例:
D:\MySQL\include
D:\MySQL\bin
- 在Visual Studio 2022新建空项目
- 项目->属性->配置属性->VC++目录->分别将include和lib文件夹的路径添加到包含目录和库目录
- 文件导入
将libmysql.dll文件粘贴到Visual Studio 2022项目文件夹下
例:
代码编写
- #include<stdio.h>
- #include<stdlib.h>
- #include <winsock.h>
- #include <mysql.h>
- #pragma comment (lib, "libmysql.lib")
- int main()
- {
- //变量定义
- MYSQL* conn; //数据库连接句柄
- MYSQL_RES* res; //执行数据库语言结果
- MYSQL_ROW row; //存放一个数据记录
- char* server = "localhost";//本地连接
- char* user = "root";//
- char* password = "123456";//mysql密码
- char* database = "mysql_test";//数据库名
- char* query = "select * from student";//需要查询的语句
- int t;
- conn = mysql_init(NULL); //句柄初始化
- //尝试连接到数据库
- if (!mysql_real_connect(conn, server, user, password, database, 3306, NULL, 0)) //判断是否连接成功
- {
- printf("Error connecting to database:%s\n", mysql_error(conn));
- }
- else
- {
- printf("Connected...\n");
- }
- //字符编码,解决乱码
- if (!mysql_set_character_set(conn, "gbk"))
- {
- printf("New client character set: %s\n",
- mysql_character_set_name(conn));
- }
- //调用API根据用户输入的Query对数据库操作
- if (mysql_query(conn, query))
- {
- printf("Error making query:%s\n", mysql_error(conn));
- }
- else
- {
- printf("Query made...\n");
- res = mysql_use_result(conn); //获取结果
- if (res)
- {
- while ((row = mysql_fetch_row(res)) != NULL)
- {
- //printf("num=%d\n",mysql_num_fields(res));//列数
- for (t = 0; t < mysql_num_fields(res); t++)
- printf("%8s ", row[t]);
- printf("\n");
- }
- }
- mysql_free_result(res); //释放res占用的内存空间
- }
- mysql_close(conn); //断开数据库
- //system("pause");
- return 0;
- }
复制代码 MYSQL搭建测试数据库
- drop database if exists mysql_test cascade;
- create database mysql_test;
- use mysql_test;
复制代码- create table student (
- s_id int,
- s_name varchar(8),
- s_birth date,
- s_sex varchar(4)
- );
复制代码- insert into student values
- (1,'赵雷','1990-01-01','男'),
- (2,'钱电','1990-12-21','男'),
- (3,'孙风','1990-05-20','男'),
- (4,'李云','1990-08-06','男'),
- (5,'周梅','1991-12-01','女'),
- (6,'吴兰','1992-03-01','女'),
- (7,'郑竹','1989-07-01','女'),
- (8,'王菊','1990-01-20','女');
复制代码 代码测试
- 编译
生成->重新生成解决方案
出现:“全部重新生成:1成功,0失败,0已跳过”即编译完成,无错误
- 调试
->按下调试按钮F5
运行成功,如图所示
- 报错
- 错误
编译时出现C2440,E0144这两个报错代码
- 解决办法
项目->属性->C/C++->语言->符合模式->将“是”改为“否”
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |