能够弹出对话框,勾选相应选项后SQL语句生成也正确,但是到把执行完SQL语句的结果传回MFC里的list control里就报标题那个错误了
这是代码,i_count代表行,j_count代表列
//SQL语句传到SQL里查询,再把查到的数据集传回list control输出
m_pRecordset.CreateInstance("ADODB.m_pRecordset");
m_pRecordset = m_pConnection->Execute(_bstr_t(SQL), NULL, adCmdText);//将查询数据导入m_pRecordset数据容器,将记录集获取的数据一一与输入的数据进行比较
int i_count = 0;
while (!m_pRecordset->adoEOF) {
_variant_t temp1 = (_bstr_t)m_pRecordset->GetCollect("Sno");
_variant_t temp2 = (_bstr_t)m_pRecordset->GetCollect("Sname");
_variant_t temp3 = (_bstr_t)m_pRecordset->GetCollect("Ssex");
_variant_t temp4 = (_bstr_t)m_pRecordset->GetCollect("Sdept");
_variant_t temp5 = (_bstr_t)m_pRecordset->GetCollect("Sage");
_variant_t temp6 = (_bstr_t)m_pRecordset->GetCollect("Cname");
_variant_t temp7 = (_bstr_t)m_pRecordset->GetCollect("Pcname");
_variant_t temp8 = (_bstr_t)m_pRecordset->GetCollect("Credit");
_variant_t temp9 = (_bstr_t)m_pRecordset->GetCollect("Grade");
int j_count = 0;
Result.InsertItem(i_count, _T(""));
if (CKSno.GetState() == 1)
Result.SetItemText(i_count, j_count++, (LPCTSTR)temp1.llVal);
if (CKSname.GetState() == 1)
Result.SetItemText(i_count, j_count++, (LPCTSTR)temp2.llVal);
if (CKSsex.GetState() == 1)
Result.SetItemText(i_count, j_count++, (LPCTSTR)temp3.llVal);
if (CKSdept.GetState() == 1)
Result.SetItemText(i_count, j_count++, (LPCTSTR)temp4.llVal);
if (CKSage.GetState() == 1)
Result.SetItemText(i_count, j_count++, (LPCTSTR)temp5.llVal);
if (CKCname.GetState() == 1)
Result.SetItemText(i_count, j_count++, (LPCTSTR)temp6.llVal);
if (CKPcname.GetState() == 1)
Result.SetItemText(i_count, j_count++, (LPCTSTR)temp7.llVal);
if (CKCredit.GetState() == 1)
Result.SetItemText(i_count, j_count++, (LPCTSTR)temp8.llVal);
if (CKGrade.GetState() == 1)
Result.SetItemText(i_count, j_count++, (LPCTSTR)temp9.llVal);
i_count++;
m_pRecordset->MoveNext();
}
m_pRecordset->Close();//关闭记录集