MFC 對MYSQL資料庫相關操作,mfcmysql資料庫相關

來源:互聯網
上載者:User

MFC 對MYSQL資料庫相關操作,mfcmysql資料庫相關

    記得看過有人說,現在的軟體基本上都是連著資料庫的,如果一個軟體沒有跟資料庫相連,基本沒什麼作用。雖然這種說法略顯片面,但資料庫之於軟體的重要也是毋庸置疑的。

    MFC串連資料庫應該不算是什麼新鮮的命題了,方法是有好幾種的,本人試了下,感覺利用MySQL提供的C語言API來進行操作蠻方便的,所以在此記錄下相關的操作。

    要用MySQL提供的C語言API,首先要包含API的標頭檔目錄,也就是在MFC工程屬性中的“包含目錄”下添加MySQL安裝目錄的“include”檔案夾。因為API是以動態連結程式庫的形式打包的,所以還要在MFC工程屬性中的“庫目錄”下添加MySQL安裝目錄的“lib”檔案夾,結果如所示:


    因為是動態連結程式庫,所以在做完上面的配置後,要將MySQL安裝目錄下的libmysql.dll檔案拷貝到MFC工程目錄下,如果以後要發行的話這個也要打包進去。昨晚這一步,我們只需要在用到MySQL的標頭檔中包含MySQL標頭檔就可以正常使用此資料庫了。代碼如下:

#include "winsock.h"//因為資料庫是通過網路連接的,必須包含網路相關標頭檔#include "mysql.h"//這個沒什麼好說的,mysql標頭檔自然要包含  #pragma comment(lib,"libmySQL.lib")//附加依賴項,也可以在工程屬性中設定

    做完上面的配置,我們已經可以正常的使用MySQL提供的API了,下面分門別類的來講講具體的操作。

    

    串連資料庫:

MYSQL m_sqlCon;mysql_init(&m_sqlCon);//初始化資料庫物件if (!mysql_real_connect(&m_sqlCon, "localhost", "root", "123", "test", 3306, NULL, 0))//localhost:伺服器位址,可以直接填入IP;root:帳號;123:密碼;test:資料庫名;3306:網路連接埠  {AfxMessageBox(_T("資料庫連接失敗!"));return;}else//串連成功則繼續訪問資料庫,之後的相關作業碼基本是放在這裡面的{AfxMessageBox(_T("資料庫連接成功!"));}mysql_close(&m_sqlCon);//關閉Mysql串連  

    得到資料庫中表資料:

mysql_query(&m_sqlCon, "SET NAMES 'GB2312'");//設定資料庫字元格式設定,解決中文亂碼問題if (mysql_real_query(&m_sqlCon, "select * from 物料屬性", (unsigned long)strlen("select * from 物料屬性")))// 查詢資料庫中的"物料屬性"表  {return;}res = mysql_store_result(&m_sqlCon);//得到儲存結果集  if (NULL == res)//如果為空白則返回{ return; }int listrow = 0;while (row = mysql_fetch_row(res))//重複讀取行,把資料放入列表中,直到row為NULL  {for (int rols = 0; rols < cols; rols++){CString myreaddata(row[rols]);if (rols==0){list->InsertItem(listrow, myreaddata);//添加第一個學生資料}else{list->SetItemText(listrow, rols, myreaddata);}}listrow++;}
    清空資料表內容:
mysql_query(&m_sqlCon, "SET NAMES 'GB2312'");//設定資料庫字元格式設定,解決中文亂碼問題char *mysqlstatements = "DELETE 物料屬性.*FROM 物料屬性";//sql動作陳述式mysql_real_query(&m_sqlCon, mysqlstatements, (unsigned long)strlen(mysqlstatements));//清空"物料屬性"表  

    插入資料表內容:

sprintf_s(mysqlstatements, "INSERT INTO 物料屬性(物料編號,物料名稱,所屬類別,計量單位,樣品單價,批量單價) value('%s', '%s', '%s', '%s', '%s', '%s')",mysqlinsertpoint[0], mysqlinsertpoint[1], mysqlinsertpoint[2], mysqlinsertpoint[3], mysqlinsertpoint[4], mysqlinsertpoint[5]); //sql動作陳述式mysql_real_query(&m_sqlCon, mysqlstatements, (unsigned long)strlen(mysqlstatements));//插入資料到"物料屬性"表










聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.