在 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++ 和(带有 phpmysql)。但现在我需要将 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 项目