MFC控件之list control(续)---ado

mfc通过ado连接数据库,然后用list control 显示,且对数据要进行修改、增加、删除等操作
1、在list control中应该增加事件:LVN_ITEMCHANGED,在事件响应函数中增加对应数据库智能指针移动代码:
POSITION pos = m_testList.GetFirstSelectedItemPosition();
int i = m_testList.GetNextSelectedItem(pos);
if (i < 0)
{
return;
}
try
{
m_pRecordset->MoveFirst();
m_pRecordset->Move(long(i));
//m_testList.SetCheck(i);
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
}
这样的话,点击list control中的某一行,数据库中也对应移到改行

2、插入数据
                m_pRecordset->AddNew();
m_pRecordset->PutCollect("ParamType",_variant_t(a_type));
m_pRecordset->PutCollect("ParamName",_variant_t(a_param));
m_pRecordset->PutCollect("ParamValue",_variant_t(a_value));
m_pRecordset->Update();

3、更新或修改数据
m_pRecordset->PutCollect("ParamType",_variant_t(a_type));
m_pRecordset->PutCollect("ParamName",_variant_t(a_param));
m_pRecordset->PutCollect("ParamValue",_variant_t(a_value));
m_pRecordset->Update();

4、删除数据
  m_pRecordset->Delete(adAffectCurrent);
  m_pRecordset->Update();

5、显示数据
var = m_pRecordset->GetCollect("ParamType");
if (var.vt != VT_NULL)
{
configType = (LPCSTR)_bstr_t(var);
}
m_testList.InsertItem(i,configType,0);

注:创建连接的时候,m_pConnection.CreateInstance(__uuidof(Connection));默认写的时候是
m_pConnection->CreateInstance(__uuidof(Connection));此时编译是通不过的,必须把“->”改为“.”才行

你可能感兴趣的:(数据库,list,null,mfc)