在上一篇的基础上,这里给出操作数据库的实例:
1;检索记录:
void CMFCApplication2Dlg::OnBnClickedButton3()
{
// TODO: 在此添加控件通知处理程序代码
HRESULT hr;
_variant_t vFieldValue;
try{
hr=m_pRs->Open("Course",m_pConn.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdTable);
}
catch(CString p)
{
MessageBox(p);
}
if(SUCCEEDED(hr))
{
m_pRs->MoveFirst();
m_list.DeleteAllItems();//清空列表控件的所有内容
int i,n=0;
while(!m_pRs->GetEndOfFile())
{
vFieldValue=m_pRs->GetCollect("cno");//数据表的cno字段
i=m_list.InsertItem(n,_bstr_t(vFieldValue));//添加到列表控件中显示
vFieldValue=m_pRs->GetCollect("count");//数据表的count字段
m_list.SetItemText(i,1,_bstr_t(vFieldValue));//添加到列表控件显示
n++;
m_pRs->MoveNext();//移动到数据表中的下一条记录
}
}
hr=m_pRs->Close();
}
添加记录:
void CMFCApplication2Dlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
HRESULT hr;
hr=m_pRs->Open("select * from Course",m_pConn.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
if(FAILED(hr))
return ;
if(!m_pRs->Supports(adAddNew))
return;
m_pRs->AddNew();
m_pRs->Fields->GetItem(_variant_t("cno"))->Value=_bstr_t("math");//添加cno字段的值为“math”
m_pRs->Fields->GetItem(_variant_t("count"))->Value=_bstr_t("20");//添加count字段的值为20
m_pRs->Update();
m_pRs->Close();
}
更新记录:
void CMFCApplication2Dlg::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
HRESULT hr;
hr=m_pRs->Open("select * from Course",m_pConn.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
if(FAILED(hr))
return;
m_pRs->MoveLast();//移动到最后一行
m_pRs->PutCollect(L"cno",L"PE");//将最后一行的cno字段对应的值修改为:PE
m_pRs->Update();
m_pRs->Close();
}
删除记录:void CMFCApplication2Dlg::OnBnClickedButton4()
{
// TODO: 在此添加控件通知处理程序代码
HRESULT hr;
hr=m_pRs->Open("select * from Course",m_pConn.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
m_pRs->MoveLast();//将记录指针移动到最后一行
m_pRs->Delete(adAffectCurrent);//将目前有效的这一行删除。
m_pRs->Close();
}