vc++操作mysql資料庫的技巧

來源:互聯網
上載者:User
(調試此Demo需要將目錄裡的mydb子目錄拷到MySQL安裝目錄的data子目錄下(我的是:D:\Program Files\MySQL\MySQL Server 5.0\data)  摘要:本文詳細闡述了如何進行MySQL的安裝、調試,以及如何用VC進行編譯,實現資料的“添加、修改、刪除”等功能。

 一、MySQL的安裝

可以考慮安裝mysql-5.0.41-win32(可到http://www.newhua.com/soft/3573.htm處下載),當然你有更新的版本更好,注意選擇“完整安裝”(只有這樣才會安裝VC編譯時間需要的標頭檔等)。安裝後期會進行伺服器配置,你可以設定你的伺服器登陸密碼,也可以不設定密碼。

二、VC6.0的設定

(1)開啟VC6.0 工具列Tools菜單下的Options選項,在Directories的標籤頁中右邊的“Show directories for:”下拉式清單中選中“Includefiles”,然後在中間列表框中添加你本地安裝MySQL的include目錄路徑。(我的是D:\Program Files\MySQL\MySQL Server 5.0\include)。

(2)在上面說到的“Show directories for:”下拉式清單中選中“Library files”,然後添加你本地安裝MySQL的Lib目錄路徑。Lib目錄下還有debug和opt兩個目錄,建議選debug。(我的是D:\Program Files\MySQL\MySQL Server 5.0\lib\debug)。

(3)在“Project settings->Link:Object/library modules”裡面添加“libmysql.lib”。

(4)在stdafx.h裡面添加如下的內容:

 

 

(5)建議將“libmySQL.lib、libmySQL.dll”拷到你所建的工程的目錄下。

三、資料庫、表的建立

開啟“開始->所有程式->MySQL->MySQL Server 5.0->MySQL Command Line Client.exe”,如果沒有設定密碼就直接按斷行符號,會提示伺服器啟動成功。

mysql> SHOW DATABASES;//顯示所有的資料庫,注意一定要 敲“;”後再按斷行符號
mysql> CREATE DATABASE mydb;//建立資料庫mydb
mysql> USE mydb;//選擇你所建立的資料庫mydb
mysql> SHOW TABLES; //顯示資料庫中的表
mysql> CREATE TABLE mytable (username VARCHAR(100), visitelist VARCHAR(200), remark VARCHAR(200));//建立一個表mytable: 使用者名稱;訪問列表;備忘
mysql> DESCRIBE mytable;//顯示表的結構

 

四、VC編程

 

 

(1)實現添加 功能

(2)實現修改功能

CString strUsername,strList,strRemark,strSQL;
strSQL.Format("insert into mytable(username,visitelist,remark) values(\''%s\'',\''%s\'',\''%s\'')", strUsername,strList,strRemark);//注意一定要寫在一行,而且必須要有\''\''
if(mysql_real_query(&mysql,(char*)(LPCTSTR)strSQL,(UINT)strSQL.GetLength())!=0){
AfxMessageBox("增添失敗");
}

 

 

 

CString strUsername,strList,strRemark,strSQL,str_PreName;//str_PreName用於記錄想要修改的行,詳情請看原始碼
strSQL.Format("update mytable set username=\''%s\'',visitelist=\''%s\'', remark=\''%s\'' where username=\''%s\''",strUsername,strList,strRemark,str_PreName);
if(mysql_real_query(&mysql,(char*)(LPCTSTR)strSQL,(UINT)strSQL.GetLength())!=0){
AfxMessageBox("修改失敗");
}

 

 

(3)實現刪除功能

 

 

(4)讀取表格內容到CListCtrl控制項m_list

 

 

(5)關閉資料庫

 

mysql_close(&mysql);//最好寫到OnDestroy()函數中

 

m_list.DeleteAllItems();
char *ch_query;
ch_query="select * from mytable";
if(mysql_real_query(&mysql,ch_query,(UINT)strlen(ch_query))!=0){
AfxMessageBox("資料庫中表格出錯");
}
CString str;
MYSQL_RES *result;
MYSQL_ROW row;
if(!(result=mysql_use_result(&mysql))){
AfxMessageBox("讀取資料集失敗");
}
int i=0;
while(row=mysql_fetch_row(result)){
str.Format("%s",row[0]);
m_list.InsertItem(i,str);
str.Format("%s",row[1]);
m_list.SetItemText(i,1,str);
str.Format("%s",row[2]);
m_list.SetItemText(i,2,str);
i++;
}
mysql_free_result(result);

 

CString strSQL;
strSQL.Format("delete from mytable where username=\''%s\''",str_PreName);//必須要有\''\''
if(mysql_real_query(&mysql,(char*)(LPCTSTR)strSQL,(UINT)strSQL.GetLength())!=0){
AfxMessageBox("刪除失敗");
}

 

MYSQL mysql; //資料庫連接控制代碼
mysql_init (&mysql);
if(!mysql_real_connect(&mysql,"localhost","root",NULL,"mydb",3306,NULL,0)){//mydb為你所建立的資料庫,3306為連接埠號碼,可自行設定
AfxMessageBox("資料庫連接失敗");
return FALSE;
}

 

#include "mysql.h"
#include "winsock.h"
#pragma comment(lib,"libmySQL.lib")
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.