vc怎么操作mysql_VC++中数据库操作的方法

由于做了近两个月的毕设,感觉有些关键性的技术,需要做些笔记,方便以后随时使用。

在VC++中操作数据库的方法主要有两种:一种是ODBC(Open Database Connectivity,开放数据库互联)技术;另一种是ADO(ActiveX Data Object,ActiveX 数据对象)技术。这里主要记录ODBC在VC++中的使用。

ODBC提供一个单一的API,可用于处理不同数据库的客户应用程序。使用ODBC API的应用程序可以与任何具有ODBC驱动程序的关系数据库进行通信(现在,绝大多数主流关系数据库都提供了ODBC驱动程序)。ODBC体系框架如下:

41102361_1.bmp

接下来,通过一个简单的操作数据库的例子,来详细说明ODBC在VC++中的使用。

第一步:在数据库中创建一个表。你也是在任何数据库中创建表,如Oracle、SQL Sever、Access等,在这里我在Oracle中建了一个Student表,属性为学号(ID)、姓名(Name)、班级(Class),其中主键为学号(ID)。

第二步:建立ODBC数据源。点击“控制面板”中的“管理工具”,选择“数据源(ODBC)”,单击“添加”,如下:

41102361_2.bmp

选择我采用的数据库的ODBC驱动程序:

41102361_3.bmp

如果你采用的数据库是Access或是其他,可选择与之匹配的ODBC驱动程序。

然后接下来按照提示设置即可,比如设定数据源名称为shuhuan。

第三步:建立一个MFC的基于对话框的应用程序。为其加入一个按钮(Button)和一个报表类型的列表(List Control),如下:

41102361_4.bmp

第四步:设置列表的表头。选择“ClassView”,如下:

41102361_5.bmp

你会发现系统为我们自动生成了OnInitDialog函数。当程序开始执行时,会发出一个WM_INITDIALOG 消息,然后进入这个窗口响应函数(多态性原理)。我们在这个函数中为List Control控件进行初始化。不过在此之前必须为这个控件定义一个变量,有两种方法,可以MFC的ClassWizard的Member Variables中设置:

41102361_6.bmp

也可以在程序代码中手动加入:

CListCtrl& m_list_ctrl = GetListCtrl();

然后在OnInitDialog函数中的return语句前加入以下代码:

m_list_ctrl.InsertColumn( 0, _T("学号"),LVCFMT_CENTER,100,-1);

m_list_ctrl.InsertColumn( 1, _T("姓名"), LVCFMT_CENTER,80,-1);

m_list_ctrl.InsertColumn( 2, _T("班级"),LVCFMT_CENTER,100,-1);

编译执行

41102361_7.bmp

第五步:查询按钮功能的实现

双击查询按钮,系统帮我们生成一个OnQuery函数,我们接下来要做的就是在这里对数据库进行操作。首先,我们就要连接上之前建立的ODBC数据源(shuhuan),代码如下:

CDatabase m_db;

CString str;

str = _T("DSN=(ODBC数据源)shuhuan;UID=(数据库名字)shuhuan;PWD=(数据库密码)shuhuan");

if (! m_db.OpenEx(str, CDatabase::noOdbcDialog ) )

{

AfxMessageBox("打开数据源失败");

return;

}

好了,数据源连接成功之后,我们就可以对数据库实行增、删、改、查了。这里需要掌握一个类的使用:CRecordset。利用其对象可以实现上述操作。代码如下:

关于具体的方法调用请参见MSDN。

CString x_sql = "select * from student";

CRecordset x_recordset(&m_db);&nb...

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值