MFC的ODBC实验

    技术2026-08-17  25

        首先要配置好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对象可以指向相应的记录进行修改和删除操作。

     

    最新回复(0)