这个问题卡了好几天了,ADO方式连接数据库,写了一个ADO类,连接数据库成功,但是在查询操作时失败,源码如下,sql语句应该没问题,别的程序如果在主窗口连接并执行是没问题的
具体就是执行完断点那行之后不进入WHILE,直接报错,如果能解决,必有重谢!!()红包重谢
void ADO::OnBnClickedButton1()
{
{
// TODO: 在此添加控件通知处理程序代码
m_list.DeleteAllItems();
UpdateData(true);
CString cmdEditID;
CString cmdEditValue;
CRect rect;
// 获取编程语言列表视图控件的位置和大小
m_list.GetClientRect(&rect);
// 为列表视图控件添加全行选中和栅格风格
m_list.SetExtendedStyle(m_list.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
m_list.InsertColumn(0, _T("编辑命令名称"), LVCFMT_LEFT, rect.Width() / 2);
m_list.InsertColumn(1, _T("编辑命令值"), LVCFMT_LEFT, rect.Width() / 2);
try
{
_variant_t RecordsAffected;
m_pRecordset.CreateInstance(__uuidof(Recordset));
CString search_sql;
search_sql.Format(_T("SELECT * FROM cmdedit"));
m_pRecordset = ((ADO*)(AfxGetMainWnd()))->m_pConnection->Execute(search_sql.AllocSysString(), NULL, adCmdText);
while (!m_pRecordset->adoEOF)
{
CString cmdEditID;
cmdEditID = m_pRecordset->GetCollect("ID").bstrVal;
m_list.InsertItem(0, cmdEditID);
cmdEditValue = m_pRecordset->GetCollect("idvalue").bstrVal;
m_list.SetItemText(0, 1, cmdEditValue);
m_pRecordset->MoveNext();
}
m_pRecordset->Close();
}
catch (_com_error e)
{
AfxMessageBox(_T("搜索失败!"));
return;
}
}
}