mfc怎么用mysql mfc連接sql數(shù)據(jù)庫

vs2010 mfc 怎么鏈接 mysql數(shù)據(jù)庫

新建一個工程名叫mysql,編程環(huán)境選擇c#,然后選擇windows窗體應(yīng)用程序,新建一個窗體用于顯示查詢到sql數(shù)據(jù)庫的數(shù)據(jù)集

扶溝ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!

從工具箱向form1窗體上拖一個按鈕和datagridview控件,按鈕是觸發(fā)連接數(shù)據(jù)庫獲取數(shù)據(jù)集,按鈕的名稱為顯示,datagridview控件是用于顯示數(shù)據(jù)集內(nèi)容

單擊解決方案資源管理器中的引用文件夾然后右鍵選擇添加引用,選擇瀏覽后打開mysql.data.dll,這是c#連接mysql數(shù)據(jù)庫的動態(tài)庫,里面封裝了很多常用的操作數(shù)據(jù)庫的方法

在解決方案資源管理器中的form1.cs的代碼中加入using MySql.Data.MySqlClient;這就是代碼中的實際引用mysql.data.dll中的內(nèi)容,有了這個c#就能很方便地操作sql數(shù)據(jù)庫

在按鈕的單擊事件中添加如下代碼

string str = "Server=127.0.0.1;User ID=root;Password=123456;Database=test;CharSet=gbk;";

MySqlConnection con = new MySqlConnection(str);//實例化鏈接

con.Open();//開啟連接

string strcmd = "select * from user";

MySqlCommand cmd = new MySqlCommand(strcmd, con);

MySqlDataAdapter ada = new MySqlDataAdapter(cmd);

DataSet ds = new DataSet();

ada.Fill(ds);//查詢結(jié)果填充數(shù)據(jù)集

dataGridView1.DataSource = ds.Tables[0];

con.Close();//關(guān)閉連接

使用navicat軟件在數(shù)據(jù)庫test中新建表user,然后新建兩個字段username和password(圖中的欄位),navicat軟件是mysql的圖形化界面工具,負(fù)責(zé)新建表以及備份等數(shù)據(jù)庫操作,直觀地通過界面來操作

7

數(shù)據(jù)庫建好后就可以執(zhí)行工程了,單擊顯示按鈕執(zhí)行結(jié)果如下,出現(xiàn)username和password說明數(shù)據(jù)庫連接成功,由于沒有添加數(shù)據(jù)所以下面為空

MFC怎么連接MYSQL數(shù)據(jù)庫?求詳細(xì)。。

用ADO連接SQL數(shù)據(jù)庫

步驟如下:

1,在頭文件"StdAfx.h"中導(dǎo)入#import "C:/Program Files/Common Files/System/ado/msado15.dll" no_namespace rename("EOF","rsEOF"),記住把這句話放到endif的后面,不然會報錯,這樣處理好之后,編譯后又一個警告,可以忽略

2,在對話框的OnInitDialog()函數(shù)中寫上"::CoInitialize(NULL);::AfxOleInit(); ” 在主程序的初始化函數(shù)中,它就可以寫一次

3,在對話框類的頭文件中,聲明如下變量:_ConnectionPtr m_pConnection;_RecordsetPtr pRst;

連接數(shù)據(jù)庫的代碼如下:

try

{

hr=m_pConnection.CreateInstance("ADODB.Connection");

if(SUCCEEDED(hr))

{

hr=m_pConnection-Open("Provider=數(shù)據(jù)庫的驅(qū)動器名稱;Integrated Security=SSPI;Persist Security Info=False;Data Source=數(shù)據(jù)庫服務(wù)器名;Initial Catalog=連接的數(shù)據(jù)庫名; User ID=登陸數(shù)據(jù)庫的名稱;Password=登陸數(shù)據(jù)庫的密碼;","","",adModeUnknown);

}

}

catch(_com_error e)

{

AfxMessageBox(e.ErrorMessage());

}

”數(shù)據(jù)庫的驅(qū)動器名稱“在控制面板里,以大圖標(biāo)查看,可以看到一個"ODBC",雙擊打開,在”驅(qū)動程序“里面在最下面有兩個”SQL Server"和“SQL Native Client"如果你是2000的SQL版本,就選”SQL Server"及“Provider=SQL Server"2005的"Provider=SQL Native Client"Data Source=? ,?的值可以是”localhost"也可以是你的數(shù)據(jù)庫服務(wù)器的名稱,連接數(shù)據(jù)庫的時候可以看到,復(fù)制一下就可以了。

處理完之后就可以連接到你想要連接的數(shù)據(jù)庫上了!你下次給點分把?。?!

如何用MFC從MYSQL中讀取數(shù)據(jù)

//下面的代碼是一個實現(xiàn)C++連接MYSQL數(shù)據(jù)庫的很好的例子

//這里用了建表,插入,檢索,刪表等常用功能

//我用VC++6.0生成,已經(jīng)成功連接了。

//在VC++6.0中要想把做一下兩步準(zhǔn)備工作才可以。

//(1)Tools-Options-Directories-Include files中添加C:\Program Files\MySQL\MySQL Server 6.0\include

//(2)Tools-Options-Directories-Library files中添加C:\Program Files\MySQL\MySQL Server 6.0\lib\opt

//其實就是將頭文件和庫文件包含進來

//我覺得這個例子寫的很好,再結(jié)合自己的試驗,特地介紹給大家!

#include winsock.h

#include iostream

#include string

#include mysql.h

using namespace std;

#pragma comment(lib, "ws2_32.lib")

#pragma comment(lib, "libmysql.lib")

//單步執(zhí)行,不想單步執(zhí)行就注釋掉

#define STEPBYSTEP

int main() {

cout "****************************************" endl;

#ifdef STEPBYSTEP

system("pause");

#endif

//必備的一個數(shù)據(jù)結(jié)構(gòu)

MYSQL mydata;

//初始化數(shù)據(jù)庫

if (0 == mysql_library_init(0, NULL, NULL)) {

cout "mysql_library_init() succeed" endl;

} else {

cout "mysql_library_init() failed" endl;

return -1;

}

#ifdef STEPBYSTEP

system("pause");

#endif

//初始化數(shù)據(jù)結(jié)構(gòu)

if (NULL != mysql_init(mydata)) {

cout "mysql_init() succeed" endl;

} else {

cout "mysql_init() failed" endl;

return -1;

}

#ifdef STEPBYSTEP

system("pause");

#endif

//在連接數(shù)據(jù)庫之前,設(shè)置額外的連接選項

//可以設(shè)置的選項很多,這里設(shè)置字符集,否則無法處理中文

if (0 == mysql_options(mydata, MYSQL_SET_CHARSET_NAME, "gbk")) {

cout "mysql_options() succeed" endl;

} else {

cout "mysql_options() failed" endl;

return -1;

}

#ifdef STEPBYSTEP

system("pause");

#endif

//連接數(shù)據(jù)庫

if (NULL

!= mysql_real_connect(mydata, "localhost", "root", "test", "test",

3306, NULL, 0))

//這里的地址,用戶名,密碼,端口可以根據(jù)自己本地的情況更改

{

cout "mysql_real_connect() succeed" endl;

} else {

cout "mysql_real_connect() failed" endl;

return -1;

}

#ifdef STEPBYSTEP

system("pause");

#endif

//sql字符串

string sqlstr;

//創(chuàng)建一個表

sqlstr = "CREATE TABLE IF NOT EXISTS user_info";

sqlstr += "(";

sqlstr +=

"user_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Unique User ID',";

sqlstr +=

"user_name VARCHAR(100) CHARACTER SET gb2312 COLLATE gb2312_chinese_ci NULL COMMENT 'Name Of User',";

sqlstr +=

"user_second_sum INT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'The Summation Of Using Time'";

sqlstr += ");";

if (0 == mysql_query(mydata, sqlstr.c_str())) {

cout "mysql_query() create table succeed" endl;

} else {

cout "mysql_query() create table failed" endl;

mysql_close(mydata);

return -1;

}

#ifdef STEPBYSTEP

system("pause");

#endif

//向表中插入數(shù)據(jù)

sqlstr =

"INSERT INTO user_info(user_name) VALUES('公司名稱'),('一級部門'),('二級部門'),('開發(fā)小組'),('姓名');";

if (0 == mysql_query(mydata, sqlstr.c_str())) {

cout "mysql_query() insert data succeed" endl;

} else {

cout "mysql_query() insert data failed" endl;

mysql_close(mydata);

return -1;

}

#ifdef STEPBYSTEP

system("pause");

#endif

//顯示剛才插入的數(shù)據(jù)

sqlstr = "SELECT user_id,user_name,user_second_sum FROM user_info";

MYSQL_RES *result = NULL;

if (0 == mysql_query(mydata, sqlstr.c_str())) {

cout "mysql_query() select data succeed" endl;

//一次性取得數(shù)據(jù)集

result = mysql_store_result(mydata);

//取得并打印行數(shù)

int rowcount = mysql_num_rows(result);

cout "row count: " rowcount endl;

//取得并打印各字段的名稱

unsigned int fieldcount = mysql_num_fields(result);

MYSQL_FIELD *field = NULL;

for (unsigned int i = 0; i fieldcount; i++) {

field = mysql_fetch_field_direct(result, i);

cout field-name "\t\t";

}

cout endl;

//打印各行

MYSQL_ROW row = NULL;

row = mysql_fetch_row(result);

while (NULL != row) {

for (int i = 0; i fieldcount; i++) {

cout row[i] "\t\t";

}

cout endl;

row = mysql_fetch_row(result);

}

} else {

cout "mysql_query() select data failed" endl;

mysql_close(mydata);

return -1;

}

#ifdef STEPBYSTEP

system("pause");

#endif

//刪除剛才建的表

sqlstr = "DROP TABLE user_info";

if (0 == mysql_query(mydata, sqlstr.c_str())) {

cout "mysql_query() drop table succeed" endl;

} else {

cout "mysql_query() drop table failed" endl;

mysql_close(mydata);

return -1;

}

mysql_free_result(result);

mysql_close(mydata);

mysql_server_end();

system("pause");

return 0;

}

mfc 如何接收mysql數(shù)據(jù)庫數(shù)據(jù)

1、最簡單的方式:

下載一個MYSQL ODBC驅(qū)動,并安裝

2、設(shè)置一個MYSQL ODBC數(shù)據(jù)源

3、MFC中調(diào)用該數(shù)據(jù)源

4、具體進行數(shù)據(jù)庫何種操作,隨意

5、更多交流可參考我空間主頁有關(guān)文章。

名稱欄目:mfc怎么用mysql mfc連接sql數(shù)據(jù)庫
本文來源:http://muchs.cn/article4/ddiigie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、搜索引擎優(yōu)化外貿(mào)網(wǎng)站建設(shè)、用戶體驗、、網(wǎng)站營銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司