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