首先要配置好ODBC数据源,建的用户类一般继承自对话框类,再自己建一个自己的记录集类,它继承自CRecordSet类,过程中回自动要求你选择你需要用到的数据库中的表,利用它的Open()函数可以打开相应的表,然后增删改查用到AddNew(), Delete(), Update()等函数。
用到列表控件, 具体用法见下面这段代码
在列表控件中列出记录集:
CMyRecordSet rs;rs.Open();int i = 0;
m_list.InsertColumn(0, "age",LVCFMT_LEFT,50);m_list.InsertColumn(0, "name",LVCFMT_LEFT,80);m_list.InsertColumn(0, "id",LVCFMT_LEFT,50);while(!rs.IsEOF()){m_list.InsertItem(i, "ID");//m_list为列表控件对象(可以用类向导建立类与控件的关联)。CString varID;rs.GetFieldValue("id", varID);m_list.SetItemText(i, 0, varID);
CString varName;rs.GetFieldValue("name", varName);m_list.SetItemText(i, 1, varName);
CString varAge;rs.GetFieldValue("age", varAge); m_list.SetItemText(i, 2, varAge);
rs.MoveNext();i++;}rs.Close();
高亮选择:
void STD_LIST::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) //鼠标点击后选种一行。{ // TODO: Add your control notification handler code here m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT);//红色的作用就是。 *pResult = 0;}
void STD_LIST::OnItemchangedList1(NMHDR* pNMHDR, LRESULT* pResult) //选择一行后的动作。{ NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR; if(pNMListView->uChanged == LVIF_STATE){ if(pNMListView->uNewState & LVIS_SELECTED){ m_listItem = pNMListView->iItem; }else m_listItem = -1; }else m_listItem = -1; *pResult = 0;}
根据m_listItem,CResultSet对象可以指向相应的记录进行修改和删除操作。
