vs如何讀取mysql中的數(shù)據(jù)并解決中文亂碼問題
一、在vs中新建一個工程,然后新建一個源文件

二、右擊上述圖片中的mysql_test工程名,然后在最下方找到屬性,并點擊

三、點擊VC++目錄,在包含目錄中添加mysql的文件路徑,一般情況下的mysql的默認安裝路徑都是在C盤的Program Files下的,找到include路徑,然后點擊確定

四、在C/C++中的常規(guī)選項中,找到附加包含目錄,同時也將mysql的include路徑包含進去


五、在屬性頁中選擇鏈接器的常規(guī)選項,在里面找到附加庫目錄,然后添加mysql的lib路徑

六、 在鏈接器的輸入選項中,找到附加依賴項,然后直接寫上libmysql.lib

七、最后再mysql的bin目錄中,將libmysql.dll復制一份到c:\windows\system32路徑下即可。 八、隨便找一段代碼測試,這里用的是其他人的博客里面的代碼,當然有些許是修改了的,這里會作相應介紹。
mysql測試代碼如下:
create database test;
use test;
create table test_1(name varchar(128),age int);
insert into test_1 values('獜洛橙',18);vs測試代碼如下(要注意修改mysql用戶名和密碼為自己的,同時還有database的名字和里面的表的名字,我這里用戶名是root,密碼是123456,database是上面mysql測試代碼中的test,表名是test_1):
#include <stdio.h>
#include <WinSock.h>
#include <Windows.h>
#include <mysql.h>
#include<iostream>
using namespace std;
MYSQL mysql; //mysql連接
MYSQL_RES* res; //一個結果集結構體
MYSQL_ROW row; //char** 二維數(shù)組,存放一條條記錄
const char DataBase_UserName[] = "root"; //數(shù)據(jù)庫用戶名username
const char DataBase_Password[] = "123456"; //數(shù)據(jù)庫密碼,填自己的密碼
const char DataBase_Host[] = "localhost"; //數(shù)據(jù)庫連接地址
//注意有時候使用主機ip會報錯,此時可以將ip改為localhost
const char DataBase_Name[] = "test"; //database name
unsigned int DataBase_Port = 3306; //server port
bool ConnectDatabase(); //函數(shù)申明
void FreeConnect(); //釋放資源
wchar_t* Utf8_2_Unicode(char* row_i)
{
int len = MultiByteToWideChar(CP_UTF8, 0, row_i, strlen(row_i), NULL, 0);
wchar_t* wszStr = new wchar_t[len + 1];
MultiByteToWideChar(CP_UTF8, 0, row_i, strlen(row_i), wszStr, len);
wszStr[len] = '\0';
return wszStr;
}
void main()
{
setlocale(LC_ALL, "chs");
ConnectDatabase(); //連接數(shù)據(jù)庫
//查詢數(shù)據(jù)
mysql_query(&mysql, "SELECT * from test_1");
//獲取結果集
res = mysql_store_result(&mysql);
//顯示數(shù)據(jù)
//給ROW賦值,判斷ROW是否為空,不為空就打印數(shù)據(jù)。
while (row = mysql_fetch_row(res))
{
wchar_t* m1 = Utf8_2_Unicode(row[0]);
wchar_t* m2 = Utf8_2_Unicode(row[1]);
wprintf_s(L"%s %s", m1,m2);
}
FreeConnect();
getchar();
}
bool ConnectDatabase()
{
//初始化mysql
mysql_init(&mysql); //連接mysql,數(shù)據(jù)庫
//中間分別是主機,用戶名,密碼,數(shù)據(jù)庫名,端口號(可以寫默認0或者3306等),可以先寫成參數(shù)再傳進去
if (!(mysql_real_connect(&mysql, DataBase_Host, DataBase_UserName, DataBase_Password, DataBase_Name, DataBase_Port, NULL, 0))) {
printf("Error connecting to database:%s\n", mysql_error(&mysql));
return false;
}
else {
MessageBoxA(NULL, "連接MYSQL數(shù)據(jù)成功!", "消息", MB_OK);
printf("Connected...\n");
return true;
}
}
//釋放資源
void FreeConnect() {
mysql_close(&mysql);
}九、如果成功即顯示如下的提示信息框

十、打印結果(成功顯示)

到此這篇關于vs如何讀取mysql中的數(shù)據(jù)并解決中文亂碼問題的文章就介紹到這了,更多相關vs讀取mysql數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
mysql中 datatime與timestamp的區(qū)別說明
這篇文章主要介紹了mysql中 datatime與timestamp的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02
MySQL數(shù)據(jù)庫事務隔離級別介紹(Transaction Isolation Level)
這篇文章主要介紹了MySQL數(shù)據(jù)庫事務隔離級別(Transaction Isolation Level) ,需要的朋友可以參考下2014-05-05

