MFC列表控件用ADO添加数据实例

server/2024/10/22 16:29:41/

1、本程序基于前期我的博客文章《MFC用ADO连接ACESS数据库实例(免费源码下载)》
程序功能通过编辑框、组合框实时将数据写入ACESS数据库并在列表控件上显示。
2、在主界面资源视图上加上一个按钮控件、两个静态文本、一个编辑框IDC_EDIT1变量名name、一个组合框IDC_COMBO1变量名COMBO。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3、在DataAdoDlg.h类定义中添加代码

public:
void OnInitADOConn();
void display();
void ExitConnect();

4、DataAdoDlg.cpp中主要代码如下:

BOOL CDataAdoDlg::OnInitDialog()
{CDialog::OnInitDialog();   ......// TODO: Add extra initialization herem_COMBO.SetCurSel(0);  m_list.SetExtendedStyle(LVS_EX_FLATSB|LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE|LVS_EX_GRIDLINES);m_list.InsertColumn(0,"姓名",LVCFMT_LEFT,50,0);m_list.InsertColumn(1,"性别",LVCFMT_LEFT,50,1);display();return TRUE;  // return TRUE  unless you set the focus to a control
}void CDataAdoDlg::display()
{OnInitADOConn();//设置查询字符串_bstr_t bstrSQL = "select * from 表1 ";//创建记录集指针对象实例m_pRecordset.CreateInstance(__uuidof(Recordset));//打开记录集m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);while(!m_pRecordset->adoEOF){m_list.InsertItem(0,"");m_list.SetItemText(0,0,(char*)(_bstr_t)m_pRecordset->GetCollect("姓名"));m_list.SetItemText(0,1,(char*)(_bstr_t)m_pRecordset->GetCollect("性别"));//将记录集指针移动到下一条记录m_pRecordset->MoveNext();}//关闭记录集和连接
ExitConnect();
}void CDataAdoDlg::ExitConnect()
{//关闭记录集和连接if(m_pRecordset!=NULL)m_pRecordset->Close();m_pConnection->Close();
}void CDataAdoDlg::OnButton1() 
{
UpdateData(TRUE);if(name.IsEmpty()){MessageBox("姓名不能为空!");return;}OnInitADOConn();_bstr_t sql;sql = "select * from 表1";m_pRecordset.CreateInstance(__uuidof(Recordset));m_pRecordset->Open(sql,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);try{m_pRecordset->AddNew(); //添加新行m_pRecordset->PutCollect("姓名",(_bstr_t)name);CString strWeb;   int nSel;     nSel = m_COMBO.GetCurSel();// 获取组合框控件的列表框中选中项的索引     m_COMBO.GetLBText(nSel, strWeb);  // 根据选中项索引获取该项字符串  m_pRecordset->PutCollect("性别",(_bstr_t)strWeb);m_pRecordset->Update(); //更新数据表ExitConnect();}catch(...){MessageBox("操作失败");return;}MessageBox("添加成功");m_list.DeleteAllItems(); //删除列表控件display();			
}

运行程序
在这里插入图片描述


http://www.ppmy.cn/server/30814.html

相关文章

设计模式-04 设计模式-Builder

设计模式-04 设计模式-Builder 1.定义 建造者模式(Builder Pattern)是一种创建型设计模式,它允许你使用不同的构建步骤来创建复杂的对象。 建造者模式的定义是:将一个复杂对象的构建与它的表示分离,使得同样的构建过程…

sql注入工具-​sqlmap

介绍: sqlmap是一款开源的自动化SQL注入工具,用于自动化检测和利用Web应用程序中的SQL注入漏洞。它具有强大的参数化查询和自定义注入脚本的功能,可以通过检测和利用SQL注入漏洞来获取数据库的敏感信息,如用户名、密码和其他重要…

第8章 软件工程

一、软件工程概述 (一)软件危机 1、含义:落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。 2、解决方案:引入软件工程的思想。 (二&#x…

网络基础(1)网络编程套接字TCP,守护进程化

TCP协议 下面我们来学习一下TCP套接字的使用。 也就是使用一下基本的接口。首先TCP套接字的使用和UDP套接字的使用是大同小异的,但是多了一些步骤。 这里回顾一下:UDP是不可靠的,无连接的协议。而TCP则是可靠的,面向连接的协议…

音视频开发之旅——实现录音器、音频格式转换器和播放器(PCM文件转换为WAV文件、使用LAME编码MP3文件)(Android)

本文主要讲解的是实现录音器、音频转换器和播放器,在实现过程中需要把PCM文件转换为WAV文件,同时需要使用上一篇文章交叉编译出来的LAME库编码MP3文件。本文基于Android平台,示例代码如下所示: AndroidAudioDemo Android系列&am…

在线教程|零门槛部署 Llama 3,70B 版本只占 1.07G 存储空间,新用户免费体验 8B 版本

4 月 18 日,Meta 宣布开源 Llama 3,这个号称「迄今为止最好的开源大模型」一经发布,立刻引爆科技圈! 发布当天恰逢斯坦福大学教授、AI 顶尖专家吴恩达的生日,作为 AI 开源倡导者,他激动地发文表示&#xff…

鸿蒙OpenHarmony【标准系统 烧录】(基于RK3568开发板)

烧录 烧录是指将编译后的程序文件下载到芯片开发板上的动作,为后续的程序调试提供基础。DevEco Device Tool提供一键烧录功能,操作简单,能快捷、高效的完成程序烧录,提升烧录的效率。 RK3568的镜像烧录通过Windows环境进行烧录&…

Java List 获取部分组成new list,获取两个list相同/不同的内容

获取List中的一项&#xff0c;组成新的List<Object> List<String> _outingCntry list.stream().map(OSzItem::getGroup). collect(Collectors.toList()); 获取List中的多项&#xff0c;组成一个Map(Item1,item2) List<vo> list new ArrayList<>()…