小白一个,注释有不对的地方请指出,首先,设置一些引用文件的环境变量,
点击项目->属性->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); }