问题描述
- MFC ADO OnSelchangeListaccess()报错问题
-
之前没用过ADO,学习过程中使用OnSelchangeListaccess()报错了,代码如下:BOOL CDataBaseMFCTestDlg::OnInitDialog() { CDialogEx::OnInitDialog(); // 将“关于...”菜单项添加到系统菜单中。 // IDM_ABOUTBOX 必须在系统命令范围内。 ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { BOOL bNameValid; CString strAboutMenu; bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX); ASSERT(bNameValid); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } // 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动 // 执行此操作 SetIcon(m_hIcon, TRUE); // 设置大图标 SetIcon(m_hIcon, FALSE); // 设置小图标 //////////////////////////////////////////////////////////////////////////////////////////// // 使用ADO创建数据库记录集 m_pRecordset.CreateInstance(__uuidof(Recordset)); // 在ADO操作中建议语句中要常用try...catch()来捕获错误信息, // 因为它有时会经常出现一些想不到的错误。jingzhou xu try { m_pRecordset->Open("SELECT * FROM DemoTable", // 查询DemoTable表中所有字段 theApp.m_pConnection.GetInterfacePtr(), // 获取库接库的IDispatch指针 adOpenDynamic, adLockOptimistic, adCmdText); } catch (_com_error& e) { dump_com_error(e); } ///////////////////////////////////////////////////////////////////////////////////////////////////// _variant_t var; CString strName, strAge; // 清空列表框 m_AccessList.ResetContent(); strName = strAge = ""; // 在ADO操作中建议语句中要常用try...catch()来捕获错误信息, // 因为它有时会经常出现一些想不到的错误。jingzhou xu try { if (!m_pRecordset->BOF) m_pRecordset->MoveFirst(); else { AfxMessageBox("表内数据为空"); return false; } // 读入库中各字段并加入列表框中 while (!m_pRecordset->adoEOF) { var = m_pRecordset->GetCollect("Name"); if (var.vt != VT_NULL) strName = (LPCSTR)_bstr_t(var); var = m_pRecordset->GetCollect("Age"); if (var.vt != VT_NULL) strAge = (LPCSTR)_bstr_t(var); m_AccessList.AddString(strName + " --> " + strAge); m_pRecordset->MoveNext(); } // 默认列表指向第一项,同时移动记录指针并显示 m_AccessList.SetCurSel(0); OnSelchangeListaccess(); } catch (_com_error& e) { dump_com_error(e); } return TRUE; // 除非将焦点设置到控件,否则返回 TRUE }
说OnSelchangeListaccess()未定义标识符,原因在哪
解决方案
OnSelchangeListaccess()方法是否存在,大小写是否正确,是否缺少头文件。
解决方案二:
我觉得ADO完全可以不用了,大量更好用的数据库可以选择
时间: 2024-10-27 02:19:47