小白一個,註釋有不對的地方請指出,首先,設置一些引用文件的環境變量,
點擊項目->屬性->vc++目錄然後“include目錄”(包含目錄)那把
“C:\ProgramFiles\MySQL\MySQL Server 5.0\include”給加進來
再然後“lib目錄”(庫目錄)那裏把
“C:\ProgramFiles\MySQL\MySQL Server 5.0\lib”和“C:\ProgramFiles\MySQL\MySQL Server 5.0\lib\opt”
也一起加進來。
以上三個文件在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);
}