目的:实现ADO类跟DataGrid控件的组合应用,如增删改查

目的:实现ADO类和DataGrid控件的组合应用,如增删改查。
 目的:实现ADO类和DataGrid控件的组合应用,如增删改查。


最近学习 在MFC架构下使用ADO和DataGrid  访问 MDB数据库。

有感于各位大神的缥缈,所以做了比较详细的记录,希望可以初学者一个支撑。

目前只是实现县增删改查中的查,盼指导如何实现 其他三个操作(可付费)。

谢谢

链接:http://pan.baidu.com/s/1qWIzMcG 提取密码:yg70

关键词: MFC VS2010  DataGrid ADO  数据库  详细 教程

运行效果:
目的:实现ADO类跟DataGrid控件的组合应用,如增删改查
------解决方案--------------------
try
    {
        //A :确定行  也是游标 这里使用默认游标
        //m_pRecordset->MoveFirst();
        //m_pRecordset->MoveLast();
        //m_pRecordset->move
        //B:使用记录集的 GetCollect("ID")函数获取 对应列中的数据 
        vID     = m_pRecordset->GetCollect("ID");//使用列
        vName   = m_pRecordset->GetCollect("NameGsz");
        vXingBie= m_pRecordset->GetCollect("XinBie");
        vZhaoShu= m_pRecordset->GetCollect("ZhaoShu");
    }
这段,读数据之前应该先判断当前位置是非BOF或者EOF

m_pRecordset->MoveFirst();//首先将游标移到首位
            m_pRecordset->Move(1);//然后再移动到第二行
            m_pRecordset->Delete(adAffectCurrent);//调用函数删除当前行

这段代码会删错数据,要删除的记录定位后,不能再Move,直接Delete就是


 m_pRecordset->MoveLast();
        //C: 调用函数PutCollect 修改数据
        m_pRecordset->PutCollect("ID",_variant_t(ID));
        m_pRecordset->PutCollect("NameGsz",_variant_t(Name));
        m_pRecordset->PutCollect("XinBie",_variant_t(XingBie));
        m_pRecordset->PutCollect("ZhaoShu",_variant_t(ZhaoShu));
        //D: 更新数据库 也可以理解为写入数据库
        m_pRecordset->AddNew();
        m_pRecordset->Update();
这段,顺序搞错了,AddNew();应该放在前面,MoveLast();没有必要,>Update();更新到数据库,但是更新后,如果再修改可能会出现行集定位错误

使用Datagrid更新功能是比较不可取的,最好使用Update查询更新
ID你应该是使用自动编号的数据类型,由数据库更新,不需赋值

------解决方案--------------------
再一步就是实现 DataGrid每行的颜色可以控制。(我的目的是实现报警记录可查,不同等级的报警不同的颜色)

你这个目的使用Datagrid是无法实现,如果真要控制则可以考虑使用
MSHFlexGrid,这个控件每个单元格可以控制颜色,但是使用起来会比较繁杂,同时,速度会比较慢