MFC OLE DB的基础认识

  今天终于学到OLE DB了,前些天学了ODBC,但感觉ODBC还是没有象ASP一样简单易用!而OLE DB不同,更加接近于ASP那种

这是我几天做的代码

数据库与控件建立关系:

在之前已经建了两个文本框

IDC_DEPARTMENTCODE和IDC_DEPARTMENTNAME

 void COLEView::DoDataExchange(CDataExchange* pDX)
{
 COleDBRecordView::DoDataExchange(pDX);
 //{{AFX_DATA_MAP(COLEView)
  // NOTE: the ClassWizard will add DDX and DDV calls here
 //}}AFX_DATA_MAP
 DDX_Text(pDX,IDC_DEPARTMENTCODE,m_pSet->m_departmentcode,51);
 DDV_MaxChars(pDX,m_pSet->m_departmentcode,50);
 DDX_Text(pDX,IDC_DEPARTMENTNAME,m_pSet->m_departmentname,1024);
 DDV_MaxChars(pDX,m_pSet->m_departmentname,1023);
}
数据库记录的添加

void COLEView::OnAdd()
{
 // TODO: Add your command handler code here
 if(!UpdateData(TRUE))
 {
  //return FALSE;
  if(m_bAddmode)
  {
   m_bAddmode=FALSE;
   if(FAILED(m_pSet->Insert()))
   {
    AfxMessageBox("insert faile!",MB_ICONEXCLAMATION);
    m_pSet->MoveFirst();
    UpdateData(FALSE);
    //return FALSE;
   }
  }
 }
 
 else if(FAILED(m_pSet->SetData(0)))
 {
  AfxMessageBox("Update via setdata failed",MB_ICONEXCLAMATION);
  UpdateData(FALSE);
  //return FALSE;
 }
 m_bAddmode=TRUE;
 //m_pSet->ClearFields();
 UpdateData(FALSE);
}

数据库记录的删除:

void COLEView::OnDelete()
{
 // TODO: Add your command handler code here
 if(AfxMessageBox("are you sure you want to delete?",MB_YESNO)!=IDYES)
 {
  return;
 }
 if(m_bAddmode)
 {
  m_bAddmode=FALSE;
 }
 else if(FAILED(m_pSet->Delete()))
 {
  AfxMessageBox("delete faild:/n",MB_ICONEXCLAMATION);
 }
 if(m_pSet->MoveNext()!=S_OK)
 {
  AfxMessageBox("no more records",MB_ICONEXCLAMATION);
  m_bAddmode=TRUE;
  //m_pSet->ClearFields();
  UpdateData(FALSE);
 }
 UpdateData(FALSE);

}

你可能感兴趣的:(MFC OLE DB的基础认识)