ODBC MFC 访问ACCESS数据库
第一步:控制面板->管理工具->ODBC->用户DSN-> Microsoft ACCESS Driver(*.mdb)->写上数据源名,然后就“OK”了。我的是Exa_2
 
第二步:编写ACCESS数据库,建立数据库如:Exa_2,然后写入表,Exat_2.
 
第三步:1编写代码。建立一个单文档的MFC工程名字是shujuku4。在StdAfx.h里加上头文件#include "afxdb.h",使得能访问数据库。
2用ClassWizard创建CTestDB类。从Add Class菜单中选择New,类名为CTestDB,基类为CRecordset。确定后会显示Database Options对话框,Datasource选择刚才创建的Exa_2数据源。选择一个表,请选Exa_2表。
5在Doc类的头文件前包含CTestDB的声明,#include "TestDB.h"
6.在Doc类加入public类型的数据成员CTestDB m_set; 在View类加入数据成员CTestDB* m_pset;
7.在View类的OnDraw中加入代码
if(m_pset->IsOpen())                            
m_pset->Close();                        
m_pset->Open();    
       CPoint pText(0,0);                
CString str;
if (m_pset->IsBOF())            
{   
        return;
    }                    
m_pset->MoveFirst();            
while (!m_pset->IsEOF())        
{
        pDC->SetTextColor(RGB(119,0,0));                
str.Format("%ld", m_pset->m_column1);            
pDC->TextOut(pText.x, pText.y, str);        
pDC->TextOut(pText.x+100, pText.y, m_pset->m_column2);
        str.Format("%d", m_pset->m_column3);
        pDC->TextOut(pText.x+400, pText.y, str);
        str.Format("%d", m_pset->m_column4);
        pDC->TextOut(pText.x+500, pText.y, str);
        m_pset->MoveNext();
        pText.y= pText.y+50;
        

9.用ClassWizard在View类加入OnInitialUpdate(),并加入代码

    m_pset=&GetDocument()->m_set;                
    
1.    插入记录。
在RESOURCE的Dialog插入新的Dialog,如图:
 并把添加的ID改为IDC_ADD,删除的ID改为IDC_DEL。
双击Dialog空白处,如图。 点OK。。name设置为CTestDlg。然后OK。
选择resources里面的menu. 添加一个“数据库操作”。并修改id如图。
 
右击数据库操作,建立类向导。选择commond,然后add function。。接着OK,编辑代码。
    CTestDlg dlg;
    dlg.m_pt=this;
    dlg.DoModal();
并在OnUp() 里加上头文件。#include "TestDlg.h"

在添加上点右键。建立类向导。选择member variables.进行关联。 选择message maps的messages选择BN_CLICKED,然后add function,并在CTestDlg里编辑代码。
    加入public:CShujuku4View* m_pt;CTestDB m_sett;并加入头文件    #include "TestDB.h"
#include "shujuku4View.h"    
然后再ONadd里编辑代码如下:if(m_sett.IsOpen())
        m_sett.Close();
    m_sett.Open();
    m_sett.MoveFirst();
    UpdateData();
  

    do{
    if(m_sett.m_column1==m_e1||m_sett.m_column2==m_e2||m_sett.m_column3==m_e3||    m_sett.m_column4==m_e4)
    {
    

        m_sett.Delete();
        m_sett.MoveNext();
    }
    else    m_sett.MoveNext();
        
    }   while (!m_sett.IsEOF());
        
    UpdateData(FALSE);