MFCプロジェクトはデータベースに接続し、読み出しデータを表示する

3176 ワード

まず、引用ファイルの環境変数を設定します.
項目->プロパティ->vc++ディレクトリをクリックし、「includeディレクトリ」(ディレクトリを含む)をクリックします.
「C:ProgramFilesMySQLMySQL Server 5.0include」を追加
それから「libディレクトリ」(ライブラリディレクトリ)のところに
「C:ProgramFilesMySQLMySQLMySQL Server 5.0lib」と「C:ProgramFilesMySQLMySQLMySQL Server 5.0libopt」
一緒に入れます.
以上の3つのファイルはmysqlのインストールディレクトリの下にあります(デフォルトはC:ProgramFiles、または異なります)
http://blog.csdn.net/lvshubao1314/article/details/50249955(データベース接続)
これらを作ったら、コードを叩くことができます.
1.ヘッダファイルの追加
#include "winsock.h"

#include "mysql.h"

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

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

2.私は初期化関数でデータベースデータを読みます.次は初期化関数です.
void CCMyListViewView::OnInitialUpdate()
{ 
    CListView::OnInitialUpdate(); 
    char *host = "localhost"; 
    char *user = "mysql     "; 
    char *pass = "mysql      "; 
    char *db = "        database  "; 
    unsigned int port = 3306; //server port            3306
    MYSQL *sock; 
    MYSQL_RES *result; 
    MYSQL_ROW row;
     //        
     sock=mysql_init(0); 
    //            
    if(!(sock &&mysql_real_connect(sock,host,user,pass,db,0,NULL,0)))
     { 
           AfxMessageBox(_T("I'm sorry to tell you that you wrong!"));
     } else 
    {
         //            ,                     !!!!!!
         mysql_set_character_set(sock,"gb2312"); //       
         // mysql_query(sock,"set character set gb2312");
         // TODO:    GetListCtrl()      ListView      ,         ListView。
         //      
        m_pListCtrl=&GetListCtrl(); 
        //    
        m_pListCtrl->DeleteAllItems();
        m_pListCtrl->ModifyStyle(0,LVS_REPORT);
        m_pListCtrl->SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT); 
        CString str_gradName[] ={_T("ID"),_T("name"),_T("ege"),_T("adress"),_T("salray")};
        //   ,      
        for (int i = 0; i < 5; i++)
        {
               m_pListCtrl->InsertColumn(i,str_gradName[i],LVCFMT_CENTER,50,-1);
        }
        CString m_name,m_adress,m_id,m_ege,m_salary; //     
        char sql[100] ="select * from employee"; 
        //    
        mysql_real_query(sock, sql, (unsigned long)strlen(sql));
        result = mysql_store_result(sock);//mysql_free_result(result);
        int i=0;
        while((row = mysql_fetch_row(result)))
        { 
                //row     ,                 ,       
                m_id=row[0];
                m_name=row[1];
                m_ege=row[2];
                m_adress=row[3];
                m_salary=row[4];
                int nRow = m_pListCtrl->InsertItem(i,m_id);//   
                 m_pListCtrl->SetItemText(nRow, 1, m_name);//     
                m_pListCtrl->SetItemText(nRow, 2, m_ege);//    
                m_pListCtrl->SetItemText(nRow, 3, m_adress);//    
                m_pListCtrl->SetItemText(nRow, 4, m_salary);//    
                i++;
        } 
    //      
    mysql_free_result(result);
}