MFC中的listcontrol控件连接mysql数据库输出数据

环境:VS2013+MFC

目标:实现MFC框架上的ListControl空间的连接数据库读取数据

主要技术:MFC框架、ListControl控件、mysql基于C的API

操作步骤:

ListControl部分:

1.在基于对话框模式的MFC可视化编程界面添加ListControl控件;

2.绑定控件与对应的变量,在OnInitDialog函数中,对其进行操作;

3.使用InsertColumn函数添加列名,使用InsertItem函数添加行数据(这里数据是由数据库中提出的,基本方法下面指出);

注:在这个过程中遇到了函数形参与实参不匹配的问题,其中函数要求的形参为LPCTSTR,后使用CString进行适配成功,遇到了_T()函数的问题,其可以让程序支持Unicode编码。

MySql连接部分:

连接mysql数据库使用的方法是mysql提供的API接口,但是还是有很多的其他办法,例如ODBC、DAO、ADO,但是这些没有使用,日后应该去学习一下基本的一些框架结构

1.根据网上搜索的资料,将mysql.h、libmysql.lib、libmysql.dll等放入工程的目录中,并在工程文件中加入引用。(主要参考链接http://jingyan.baidu.com/article/fedf073772bb3535ad89777a.html)

2.基本的数据库连接分为以下三部,如代码所示:

MYSQL mysql;//声明数据库对象
mysql_init(&mysql);//初始化数据库对象
mysql_real_connect(&mysql, "localhost", "root", "123456", "db::windows", 3306, NULL, 0);//连接数据库
 
   
  3.连接数据库成功后,读取数据库中数据,并取出,如下代码所示: 
  

MYSQL_RES *res;//声明数据查询结果
MYSQL_ROW row;//取每行结果的对象
mysql_real_query(&mysql, query, strlen(query));//查询函数,语句用字符串表示
res = mysql_store_result(&mysql);//得到查询结果
while (row = mysql_fetch_row(res))//逐行去除查询结果并操作
{
......//数据操作,这里可以直接以row[i]的形式取出数据项,但是均为char*行
}


 注:在做此部分时遇到的最大问题是会出现mysql的API不能识别的问题,起初以为是连接的文件没有配置好,但是后来发现,其实是mysql为X64为API,但是MFC项目在新建的时候为X32位项目,所以在项目的配置管理中,更换了项目的解决方案平台为X64之后,解决了该问题。


你可能感兴趣的:(windows开发)