主题:mfc odbc 访问access数据库
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);
第一步:控制面板->管理工具->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);