之前沒用過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()方法是否存在,大小寫是否正確,是否缺少頭文件。