在Visual Studio中将MySQL与C ++ / C#连接

时间:2014-03-09 19:55:16

标签: c++ mysql visual-studio-2010 visual-c++ mysql-connector

我知道C ++和(MySQL与PHP)。但现在我需要将MySQL与C ++连接起来。我需要MySQL服务器的帮助,MySQL Connector设置和Code :: Blocks的配置以及连接代码。请帮我。 我只知道Code :: blocks或Visual Studio。关于MySQL服务器和连接器连接器的任何事情我都不知道C ++连接。请帮帮我。

3 个答案:

答案 0 :(得分:4)

对于Visual Studio 2010,请设置以下内容:

  • MySQL SERVER 5.5.38(mysql-5.5.38-win32.msi)
  • MySQL Connector Net 6.8.3(mysql-connector-net-6.8.3.msi)

在Visual Studio中=>> File =>>新=>>项目=>> Visual C ++ =>> CLR =>> CLR空项目

enter image description here

打开项目后,View =>> Solution Explorer =>>在项目名称右键单击=>>属性=>> C / C ++或配置属性=>>一般=>>其他包含目录=>>点击编辑并写:

  

C:\ Program Files \ MySQL \ include(或安装了MySQL并提及其include文件夹的目录)。

E.g。 (C:\ Program Files \ MySQL \ MySQL Server 5.5 \ include)

enter image description here

现在在相同的属性对话框中导航到Linker =>>一般=>> “添加其他库目录”=>> (写包含.dll或.lib文件的文件夹的路径,例如C:\ Program Files \ MySQL \ Connector ODBC)

E.g。 (C:\ Program Files \ MySQL \ MySQL Connector Net 6.3.0)

enter image description here

在相同的属性对话框中,导航至Linker =>>输入=>>附加依赖项=>> (写下您要使用的.lib文件的名称,例如libmysql.lib或您要使用的任何其他库,位于“附加库目录”上方)。例如。 (libmysql.lib)

enter image description here

最后如果它不起作用,请转到C:\ Program Files \ MySQL \ include(或您安装MySQL的目录并提及其包含文件夹)。

然后在Windows搜索选项中搜索“libmysql.lib”。然后在项目bin debug,release文件夹中复制此lib文件。有时它可能会在错误消息中说出其他一些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;
}

答案 1 :(得分:2)

我正在使用MySql Connector C ++和Visual Studio(2008和2010)。

您需要在网上搜索“MySql Connector C ++示例”。要复制的信息太多了。

还要在StackOverflow中搜索“C ++ connect mysql”。

您可能还想尝试其他连接器。

请参阅MySql Connector developer's guide

答案 2 :(得分:0)

此处的工作代码:

#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;


}