vs如何讀取mysql中的數(shù)據(jù)并解決中文亂碼問(wèn)題
一、在vs中新建一個(gè)工程,然后新建一個(gè)源文件
二、右擊上述圖片中的mysql_test工程名,然后在最下方找到屬性,并點(diǎn)擊
三、點(diǎn)擊VC++目錄,在包含目錄中添加mysql的文件路徑,一般情況下的mysql的默認(rèn)安裝路徑都是在C盤(pán)的Program Files下的,找到include路徑,然后點(diǎn)擊確定
四、在C/C++中的常規(guī)選項(xiàng)中,找到附加包含目錄,同時(shí)也將mysql的include路徑包含進(jìn)去
五、在屬性頁(yè)中選擇鏈接器的常規(guī)選項(xiàng),在里面找到附加庫(kù)目錄,然后添加mysql的lib路徑
六、 在鏈接器的輸入選項(xiàng)中,找到附加依賴(lài)項(xiàng),然后直接寫(xiě)上libmysql.lib
七、最后再mysql的bin目錄中,將libmysql.dll復(fù)制一份到c:\windows\system32路徑下即可。 八、隨便找一段代碼測(cè)試,這里用的是其他人的博客里面的代碼,當(dāng)然有些許是修改了的,這里會(huì)作相應(yīng)介紹。
mysql測(cè)試代碼如下:
create database test; use test; create table test_1(name varchar(128),age int); insert into test_1 values('獜洛橙',18);
vs測(cè)試代碼如下(要注意修改mysql用戶(hù)名和密碼為自己的,同時(shí)還有database的名字和里面的表的名字,我這里用戶(hù)名是root,密碼是123456,database是上面mysql測(cè)試代碼中的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; //一個(gè)結(jié)果集結(jié)構(gòu)體 MYSQL_ROW row; //char** 二維數(shù)組,存放一條條記錄 const char DataBase_UserName[] = "root"; //數(shù)據(jù)庫(kù)用戶(hù)名username const char DataBase_Password[] = "123456"; //數(shù)據(jù)庫(kù)密碼,填自己的密碼 const char DataBase_Host[] = "localhost"; //數(shù)據(jù)庫(kù)連接地址 //注意有時(shí)候使用主機(jī)ip會(huì)報(bào)錯(cuò),此時(shí)可以將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ù)庫(kù) //查詢(xún)數(shù)據(jù) mysql_query(&mysql, "SELECT * from test_1"); //獲取結(jié)果集 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ù)庫(kù) //中間分別是主機(jī),用戶(hù)名,密碼,數(shù)據(jù)庫(kù)名,端口號(hào)(可以寫(xiě)默認(rèn)0或者3306等),可以先寫(xiě)成參數(shù)再傳進(jìn)去 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); }
九、如果成功即顯示如下的提示信息框
十、打印結(jié)果(成功顯示)
到此這篇關(guān)于vs如何讀取mysql中的數(shù)據(jù)并解決中文亂碼問(wèn)題的文章就介紹到這了,更多相關(guān)vs讀取mysql數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL將時(shí)間戳轉(zhuǎn)換為年月日格式的實(shí)現(xiàn)
在我們的項(xiàng)目開(kāi)發(fā)過(guò)程中,經(jīng)常需要將時(shí)間戳或日期時(shí)間字段轉(zhuǎn)換為特定的格式,本文主要介紹了MySQL將時(shí)間戳轉(zhuǎn)換為年月日格式的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-08-08mysql?窗口函數(shù)?ROW_NUMBER、NTILE詳解
這篇文章主要介紹了mysql?窗口函數(shù)?ROW_NUMBER、NTILE,本文通過(guò)sql語(yǔ)句給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07CentOS系統(tǒng)中MySQL5.1升級(jí)至5.5.36
有相關(guān)測(cè)試數(shù)據(jù)說(shuō)明從5.1到5.5+,MySQL性能會(huì)有明顯的提升,具體的需要自己建立測(cè)試環(huán)境去實(shí)踐下,今天我們就來(lái)操作下,并記錄下來(lái)升級(jí)的具體步驟2017-07-07MySQL數(shù)據(jù)庫(kù)忽略大小寫(xiě)的配置方法
這篇文章主要給大家介紹了MySQL數(shù)據(jù)庫(kù)忽略大小寫(xiě)的配置方法,文中通過(guò)代碼示例給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-01-01MySQL對(duì)JSON數(shù)據(jù)進(jìn)行查詢(xún)實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于MySQL對(duì)JSON數(shù)據(jù)進(jìn)行查詢(xún)的相關(guān)資料,MySQL支持使用JSON類(lèi)型存儲(chǔ)數(shù)據(jù),并提供了多種查詢(xún)JSON數(shù)據(jù)的方法,需要的朋友可以參考下2023-07-07關(guān)于Mysql如何設(shè)計(jì)高性能的數(shù)據(jù)庫(kù)
這篇文章主要介紹了關(guān)于Mysql如何設(shè)計(jì)高性能的數(shù)據(jù)庫(kù),mysql支持的數(shù)據(jù)類(lèi)型非常多,選擇正確的數(shù)據(jù)類(lèi)型對(duì)于獲得高性能至關(guān)重要,本文就來(lái)詳細(xì)說(shuō)明如何設(shè)計(jì)出高性能的數(shù)據(jù)庫(kù),需要的朋友可以參考下2023-07-07Mysql及Navicat中設(shè)置字段自動(dòng)填充當(dāng)前時(shí)間及修改時(shí)間實(shí)現(xiàn)
這篇文章主要給大家介紹了關(guān)于Mysql及Navicat中設(shè)置字段自動(dòng)填充當(dāng)前時(shí)間及修改時(shí)間實(shí)現(xiàn)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-07-07