VC++ Datagrid应用实例详解系列(3) – 增删查改

本文源码下载:

http://d.download.csdn.net/down/3182624/zxhx

导读:本文是VC++ Datagrid应用实例详解系列的第三讲 - 增删查改,总的来说功能比较完善了,代码优化后抽空再放上来。

本文的feature:

1)        使用datagrid组件实现基本的数据库(本文用的是access)操作:增删查改;

2)        模态子对话框的设计;

3)        修改记录的关键点:获取datagrid中当前记录的游标;

4)        DataGrid控件中读出日期并填入子对话框的Date Time Picker控件中的关键点:CString类型转换为CTime类型的方法。

1、 数据库连接:在前文已有阐述,故不再赘述。

2、 结果集定义,为了获取和控制游标,这里使用了结果集指针:

代码如下:

 

     主对话框初始化主要是对datagrid控件初始化,关键代码如下:

 

这里的异常捕获的描述采用了下面文章的内容:

http://blog.csdn.net/zyq5945/archive/2010/04/29/5541280.aspx

好处是异常定位和描述更清晰。

代码如下:

 

3、 查询按钮事件:OnBtQuery()

与本系列(2)中类同,数据源按datagrid设置即可,设完后需要刷新datagrid控件数据,重新设置列宽等数据。

4、 显示所有数据按钮:OnBtShowAll()

这里调用主对话框初始化函数即可: CDataGridTestDlg::OnInitDialog()

5、 增加记录按钮:OnBtAddNew()

     主要是定义模态子对话框:IDD_OPERATE

     放好文本框(Edit Box)和文本标签(Static Text),以及一个Date Time Picker控件,给文本框和Date Time Picker控件设置控件变量。

     注意,这里的Date Time Picker控件变量可以设置为CTime的值类型,也可以设置为CDateTimeCtrl类型,区别是前者只能手动输入日期,后者可以通过日历控件选择日期,这里采用的是第一种方式。 

     另外,子对话框对应的类和实现文件中自动生成的注释要小心,不能随意删除,我这里也是因为删除注释导致”…Cannot find the insert section ‘AFX_DATA_MAP’…””…Cannot find the insert section ‘AFX_MSG_MAP’…”的错误,解决方法:把注释补充完整,删除.clw文件并重建该文件。

     添加记录的主要代码:   

 

 

这里注意需要把CTime类型的日期转换为CString类型的日期strDate,本系列(2)中已有介绍。

6、 删除记录按钮:OnBtDelete()

     注意处理一下记录为空的情况:

     添加的代码如下:

 

7、 修改记录按钮:OnBtModify()

关键点:

(1)获取当前行的游标:

 

上面的语句含义是获取当前游标的行号,从0开始。

若行号为负,则表示记录为空:

 

(2)定位到当前记录:

 

(3)读取当前行的记录到子对话框中:

读取到文本框比较简单,读取到Date Time Picker控件麻烦一点,需要一系列的转换:

 

后面的写数据相对就简单多了,有兴趣的可以对照代码看一下。

截图就不发了,想看的直接看源文件吧。

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值