MFC OBDC操作Access项目设计说明书.docx

上传人:b****6 文档编号:2995738 上传时间:2022-11-17 格式:DOCX 页数:12 大小:251.20KB
下载 相关 举报
MFC OBDC操作Access项目设计说明书.docx_第1页
第1页 / 共12页
MFC OBDC操作Access项目设计说明书.docx_第2页
第2页 / 共12页
MFC OBDC操作Access项目设计说明书.docx_第3页
第3页 / 共12页
MFC OBDC操作Access项目设计说明书.docx_第4页
第4页 / 共12页
MFC OBDC操作Access项目设计说明书.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

MFC OBDC操作Access项目设计说明书.docx

《MFC OBDC操作Access项目设计说明书.docx》由会员分享,可在线阅读,更多相关《MFC OBDC操作Access项目设计说明书.docx(12页珍藏版)》请在冰豆网上搜索。

MFC OBDC操作Access项目设计说明书.docx

MFCOBDC操作Access项目设计说明书

VC++程序设计

项目说明书

姓名:

张新亮_

班级:

07060341__

学号:

0706034138_

1、项目说明:

本项目是使用MFCODBC操作Access数据库,首先,需要通过管理工具->

数据源添加access数据库。

然后建立一个MFCClassWizard[exe]名称为CtheLast的单文档工程。

接下来,

1分若干步来实现数据库表的显示:

1FileView中的StdAfx.h中加上头文件afxdb.h

2添加一个类CTestDB,基类选择CrecordSet

3在CTheLastDoc类中添加一个CTestDB类型的公有变量m_set.

4在CtheLastView类中添加一个CTestDB类型公有指针m_pSet。

5在CtheLastView中添加一个保护类型的函数virtualvoidOnInitialUpdate();

并在实现部分添加代码:

m_pSet=&GetDocument()->m_set。

6OnDraw()添加代码实现即可。

2实现数据库表的添加、修改及删除功能。

1在CTestDlg里添加一个CtestDB类型的变量m_set,然后添加一个CTheLastView类型的指针m_pt;

2添加一个对话框资源。

并在上面添加所需要的控件,如图所示:

六个编辑框的ID号无需改变。

三个按钮的ID号分别设为:

ID_BUTTON_ADD、ID_BUTTON_ALTER、ID_BUTTON_DEL.

③双击对话框点击OK,建立一个新的类CTestDlg,基类CDialog。

确定即可。

④在menu菜单做如下设置:

⑤点击右键Classwizard为“更新”添加一个命令响应函数。

如下图:

⑥点击右键Classwizard为“更新”添加一个命令响应函数。

如下图:

7为个文本框设置对应变量,如图所示:

8建立一个模态对话框,添加代码实现各种功能。

9如果要修改窗口标题,可以去CMainFrame类找到PreCreateWindow()利用cs变量来设置,在函数PreCreateWindow()添加如下代码:

cs.style&=~FWS_ADDTOTITLE;

cs.lpszName="0706034138张新亮";//引号里可以换成任何你想的名称。

2、各函数的代码:

voidCTheLastView:

:

OnInitialUpdate()

{

m_pSet=&GetDocument()->m_set;//张新亮

}

voidCTheLastView:

:

OnDraw(CDC*pDC)

{

CTheLastDoc*pDoc=GetDocument();

ASSERT_VALID(pDoc);

//TODO:

adddrawcodefornativedatahere

if(m_pSet->IsOpen())//张新亮

{

m_pSet->Close();//张新亮

}

m_pSet->Open();//张新亮

CPointpText(100,100);//张新亮

if(m_pSet->IsBOF())//张新亮

{

return;//张新亮

}

CStringstr;//张新亮

m_pSet->MoveFirst();//张新亮

while(!

m_pSet->IsEOF())//张新亮

{

pDC->SetTextColor(138);//张新亮

pDC->TextOut(pText.x,pText.y,m_pSet->m_column1);//张新亮

pDC->TextOut(pText.x+100,pText.y,m_pSet->m_column2);//张新亮

str.Format("%d",m_pSet->m_column3);//张新亮

pDC->TextOut(pText.x+200,pText.y,str);//张新亮

str.Format("%d",m_pSet->m_column4);//张新亮

pDC->TextOut(pText.x+250,pText.y,str);//张新亮

str.Format("%d",m_pSet->m_column5);//张新亮

pDC->TextOut(pText.x+300,pText.y,str);//张新亮

str.Format("%d",m_pSet->m_VC__);//张新亮

pDC->TextOut(pText.x+350,pText.y,str);//张新亮

m_pSet->MoveNext();//张新亮

pText.y=pText.y+50;//张新亮

}

pDC->TextOut(500,400,"0706034138张新亮");//张新亮}

voidCTestDlg:

:

OnButtonAdd()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

//TODO:

Addyourcontrolnotificationhandlercodehere

if(m_set.IsOpen())//张新亮

{

m_set.Close();//张新亮

}

m_set.Open();//张新亮

if(!

m_set.CanUpdate())//张新亮

{

AfxMessageBox(_T("无法更新"));//张新亮

}

else//张新亮

{

m_set.MoveLast();//张新亮

m_set.AddNew();//张新亮

UpdateData(true);//张新亮

m_set.m_column1=m_e1;//张新亮

m_set.m_column2=m_e2;//张新亮

m_set.m_column3=m_e3;//张新亮

m_set.m_column4=m_e4;//张新亮

m_set.m_column5=m_e5;//张新亮

m_set.m_VC__=m_e6;//张新亮

UpdateData(false);//张新亮

m_set.Update();//张新亮

m_set.Close();//张新亮

m_pt->Invalidate();//张新亮

}

}

voidCTestDlg:

:

OnButtonAlter()//张新亮

{

//TODO:

Addyourcontrolnotificationhandlercodehere

if(m_set.IsOpen())//张新亮

{

m_set.Close();//张新亮

}

m_set.Open();//张新亮

if(!

m_set.CanUpdate())//张新亮

{

AfxMessageBox(_T("无法更新"));//张新亮

}

else

{

UpdateData(true);//张新亮

for(inti=0;i

{

if(strcmp(m_set.m_column1,m_e1))//张新亮

{

m_set.MoveNext();//张新亮

}

else

{

m_set.Edit();//张新亮

m_set.m_column1=m_e1;//张新亮

m_set.m_column2=m_e2;//张新亮

m_set.m_column3=m_e3;//张新亮

m_set.m_column4=m_e4;//张新亮

m_set.m_column5=m_e5;//张新亮

m_set.m_VC__=m_e6;//张新亮

m_set.Update();//张新亮

break;//张新亮

}

}

}

}

voidCTestDlg:

:

OnButtonDel()//张新亮

{

//TODO:

Addyourcontrolnotificationhandlercodehere

if(m_set.IsOpen())//张新亮

{

m_set.Close();//张新亮

}

m_set.Open();//张新亮

UpdateData(true);//张新亮

m_set.MoveFirst();//张新亮

for(inti=0;i

{

if(strcmp(m_set.m_column1,m_e1))//张新亮

{

m_set.MoveNext();//张新亮

}

else

{

m_set.Delete();//张新亮

break;//张新亮

}

if(m_set.IsEOF())//张新亮

{

AfxMessageBox(_T("不存在此记录"));//张新亮

}

}

m_set.Close();//张新亮

/*m_set.Update();*/

UpdateData(false);//张新亮

m_pt->Invalidate();//张新亮

}

 

3、程序运行结果截图:

数据库截图:

显示结果截图:

添加结果截图:

修改结果截图:

删除结果截图:

4、感想与收获:

现在看来本项目十分简单,很简单的流程,不多的几行代码,但是在做的时候却是花费了不少心思。

毕竟之前做的太少,对MFC类库不十分熟悉,虽然借鉴了老师的不少代码,但做起来还是有不少困难,一要弄清楚各种流程,要添加的子对象,各种代码头文件的添加,可以说缺一不可。

再者要有新的功能的发展,必须要弄清楚每一行代码的意思,每一个函数的功能,虽有工具还是有不少困难。

这期间我发现了一个稍微简单的方法,就是利用向导来做,这时候一些变量、头文件、函数都不必人工添加,但有一个缺点是View类中没有了OnDraw函数,这时候可以自己来加,而显示结果是在一个对话框上显示的,操作起来不太容易。

于是我重新回到了老师介绍的方法中,花费时间总会有收获的,在改正了一个又一个错误之后,终于看到了我想看到的结果:

可以显示数据库结果。

但增删改又困扰了我很长时间,甚至想要放弃了,在参考了各项资料,明白了每一个函数需要的功能代码后,我终于又克服了各个困难,一步步实现了各种需要的功能。

我最大的收获是克制了浮躁心理,学会了用耐心和细心调试程序,也学会了使用MSDN和帮助文档。

并且认识了不少异常和错误的根源,对以后的调试程序大有裨益,通过几天的工作,有了点小小的成就感,以后要再接再厉,不管是VC还是JAVA,都需要思想作指导,多做程序,多积累经验,多向老师和同学请教,相信这次项目会是我真正编程的开端。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1