欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

使用 ADO 添加数据的 MFC 列表控件示例

最编程 2024-05-04 13:09:29
...
BOOL CDataAdoDlg::OnInitDialog() { CDialog::OnInitDialog(); ...... // TODO: Add extra initialization here m_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(); }

推荐阅读