在 Visual Studio 中使用 C++/C# 连接 MySQL
Posted
技术标签:
【中文标题】在 Visual Studio 中使用 C++/C# 连接 MySQL【英文标题】:Connecting MySQL with C++/ C# in Visual Studio 【发布时间】:2014-03-09 19:55:16 【问题描述】:我知道 C++ 和(带有 php 的 mysql)。但现在我需要将 MySQL 与 C++ 连接起来。我需要有关 MySQL 服务器、MySQL 连接器设置和 Code::Blocks 配置以及连接代码的帮助。请帮我。 我只知道 Code::blocks 或 Visual Studio。关于 MySQL 服务器和连接器连接器的任何事情我都不知道 C++ 连接。请帮帮我。
【问题讨论】:
尝试使用 MySql 连接器 C++:dev.mysql.com/downloads/connector/cpp 谢谢Thomas Matthews。我已经下载了。但是仍然不能做任何事情,如何连接和网络中的其他站点也没有详细说明配置。 奇怪。我在 MySql 网站和其他网站上找到了很多示例。 【参考方案1】:对于 Visual Studio 2010 设置如下:
MySQL 服务器 5.5.38 (mysql-5.5.38-win32.msi) MySQL 连接器网络 6.8.3 (mysql-connector-net-6.8.3.msi)在 Visual Studio =>> 文件 =>> 新建 =>> 项目 =>> Visual C++ =>> CLR =>> CLR 空项目
打开项目后,查看 =>> 解决方案资源管理器 =>> 在项目名称上右键单击 =>> 属性 =>> C/C++ 或配置属性 =>> 常规 =>> 附加包含目录 =>> 点击查看编辑和写作:
C:\Program Files\MySQL\include(或您安装 MySQL 的目录并提及其包含文件夹)。
例如( C:\Program Files\MySQL\MySQL Server 5.5\include )
现在在同一个属性对话框中导航到链接器 =>> 常规 =>> “添加其他库目录” =>>(写入包含 .dll 或 .lib 文件的文件夹的路径,例如 C:\Program Files\MySQL\连接器 ODBC)
例如(C:\Program Files\MySQL\MySQL Connector Net 6.3.0)
在同一属性对话框中导航到 Linker =>> Input =>> Additional Dependencies =>>(写下您要使用的 .lib 文件的名称,例如 libmysql.lib 或您要使用的任何其他库,这些库位于上面的“附加库目录”)。例如。 (libmysql.lib)
最后,如果它不起作用,请转到 C:\Program Files\MySQL\include (或您安装 MySQL 的目录并提及其包含文件夹)。
然后在 Windows 搜索选项搜索中写入“libmysql.lib”。然后将此 lib 文件复制到您的项目 bin debug,release 文件夹中。有时它可能会在错误消息中说明其他一些 lib 或 DLL 文件的要求。
在 MySQL 目录中进行相同的进程搜索并复制粘贴它们。如果这不起作用,则将上述 DLL、lib 文件复制到项目的每个文件夹中,然后它必须起作用。我是这样做的。
数据库中连接的MySQL代码:
#include "my_global.h"
#include "mysql.h"
#include<time.h>
#include<stdio.h>
#define SERVER "localhost"
#define USER "root"
#define PASSWORD ""
#define DATABASE "database"
int main()
char ch;
clock_t begin, end;
//MYSQL *connect=mysql_init(NULL);
//connect=mysql_real_connect(connect,SERVER,USER,PASSWORD,DATABASE,0,NULL,0);
//if( ! connect) printf("MySQL Initialization or Connection Failed!\n"); return 0;
//mysql_query(connect,"insert into test values(2)");
//mysql_query(connect,"INSERT INTO student VALUES('111','aaaa','bbbb')");
begin = clock();
//printf("Application SN\tMerit\tAdmission Roll\n-------------- ------- ----------------\n");
MYSQL_RES *res_set; MYSQL_ROW row;
mysql_query(connect,"SELECT * FROM database");
res_set = mysql_store_result(connect); //unsigned int numrows = mysql_num_rows(res_set);
// while ( row = mysql_fetch_row(res_set) )
//printf(" res %s\t",row[0]); /* Print the row data */
end = clock();
printf("Execution Time: %f seconds\n", (double)(end - begin) / CLOCKS_PER_SEC);
mysql_close(connect);
scanf("%c",&ch);
//getch();
//cin>>ch;
return 0;
【讨论】:
【参考方案2】:我正在使用 MySql 连接器 C++ 和 Visual Studio(2008 和 2010)。
您需要在网上搜索“MySql 连接器 C++ 示例”。此处复制的信息太多。
同时在 *** 中搜索“C++ connect mysql”。
您可能还想尝试其他连接器。
见MySql Connector developer's guide
【讨论】:
【参考方案3】:这里的工作代码:
#include "stdafx.h"
#include<winsock.h>
#include<stdio.h>
#include <mysql.h>
using namespace System;
int main()
MYSQL conn;
MYSQL_RES *res_set;
MYSQL_ROW row;
mysql_init(&conn);
if (!mysql_real_connect(&conn,"localhost","root","","TestDB",0,NULL,0))
fprintf(stderr, "Failed to connect to database: Error: %s\n",
mysql_error(&conn));
else
fprintf(stderr, "Successfully connected to Database.\n");
int status= mysql_query(&conn,"SELECT * FROM Login");
res_set = mysql_store_result(&conn);
int count=mysql_num_rows(res_set);
printf("No of rows = %d\n",count);
while ((row = mysql_fetch_row(res_set)) != NULL)
for (int i=0; i<mysql_num_fields(res_set); i++)
printf("%s \t",row[i] != NULL ? row[i] : "NULL");
printf("\n");
mysql_close(&conn);
getchar();
return 0;
【讨论】:
以上是关于在 Visual Studio 中使用 C++/C# 连接 MySQL的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Visual Studio 的 C/C++ 项目中遵循 #include 语句
(Visual Studio 杂记) )—— Visual Studio 如何 设置 C++ 标准版本
(Visual Studio 杂记) )—— Visual Studio 如何 设置 C++ 标准版本
visual studio C/C++ 编程学习 visual studio 中的生成事件
如何在 Visual Studio 中启用 C++17 编译?
使用平台工具集 v120 (Visual Studio 2013) 在 Visual Studio 2015 中创建 C++/CLI 项目