VC|简单数据库应用程序开发(vc与数据库开发技术)
cac55 2024-09-20 12:58 23 浏览 0 评论
1 数据库逻辑设计
1.1 新建数据库notes.mdb
将数据库保存到VC项目的当前目录下。
1.2 在数据库中新建表records,并添加三个,如下图所示:
2 公共模块设计
在系统程序设计中封装一些常用的方法和事件,可以让编程起得事半功倍的效果。公共类可以减少重复代码的编写,有利于代码维护。本系统创建一个公共类ADOConn,主要用于访问Microsoft Access数据库,在其他代码编写时,只需调用相应的方法即可。
2.1 新建ADOConn类:“插入”→“类”,如下图所示:
单击“确定”后,系统会自动建立名为ADOConn的.h和.cpp文件;
2.2 在头文件ADOConn.h中导入一个动态链接库、添加成员变量、方法声明
#import "C:\\Program Files\\Common Files\\System\\ado\\msado15.dll"no_namespace\
rename("EOF","adoEOF")
_ConnectionPtr m_pConn; //添加一个指向connection对象的指针
_RecordsetPtr m_pRs; //添加一个指向Recordset对象的指针
BOOL ExecuteSQL(_bstr_t bstrSQL);
_RecordsetPtr& GetRecordSet(_bstr_t bstrSQL);
void ExitConn();
void OnInitADOConn();
2.3 在头文件ADOConn.cpp中添加成员方法
void ADOConn::OnInitADOConn() //打开数据库连接
{
try
{
m_pConn.CreateInstance("ADODB.Connection");
m_pConn->ConnectionTimeout=3;
m_pConn->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=notes.mdb","","",adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
}
}
void ADOConn::ExitConn() //关闭数据库连接
{
if(m_pRs!=NULL)
m_pRs->Close();
m_pConn->Close();
}
_RecordsetPtr& ADOConn::GetRecordSet(_bstr_t bstrSQL) //打开并获得记录集
{
try
{
if(m_pConn==NULL)
OnInitADOConn();
m_pRs.CreateInstance("ADODB.Recordset");
m_pRs->Open(bstrSQL,m_pConn.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
}
return m_pRs;
}
BOOL ADOConn::ExecuteSQL(_bstr_t bstrSQL) //执行数据库语句
{
try
{
if(m_pConn==NULL)
OnInitADOConn();
m_pConn->Execute(bstrSQL,NULL,adCmdText);
return true;
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
return false;
}
}
3 主窗体设计
主窗体是程序与用户交互的界面,其简洁、美观的呈现直接关系到用户的使用体验。
3.1 相关控件及布局如下图所示:
类NoteDB对应的头文件和cpp文件为NoteDB.h和NoteDB.cpp。
3.2 控件关联的变量:
CRichEditCtrl m_contents;
CString m_classify;
CString m_summary;
CString m_status;
3.3 在NoteDB.h中包含公共类
#include "ADOConn.h"
4 控件按钮代码设计
控件按钮主要完成控件与数据库的数据交换,代码如下:
//AddNew
void NoteDB::OnButton1()
{
UpdateData(true);
CString m_contents2;
UpdateData(1);
CEdit *edit1=(CEdit*)GetDlgItem(IDC_RICHEDIT1);
edit1->GetWindowText(m_contents2);
m_contents2.TrimLeft();
m_contents2.TrimRight();
m_AdoConn.OnInitADOConn();
CString sql;
if(m_contents2=="")
{
m_status = "内容不能为空!";
}
else
{
sql.Format("insert into records(classify,summary,contents)values('%s','%s','%s')",m_classify,m_summary,m_contents2);
m_AdoConn.ExecuteSQL((_bstr_t)sql);
m_AdoConn.ExitConn();
m_classify = "";
edit1->SetWindowText("");
m_summary = "";
m_status = "New Record Inserted in notes.mdb's table Records!";
}
UpdateData(false);
}
//Query
void NoteDB::OnButton2()
{
CString m_contents2;
UpdateData(1);
CEdit *edit1=(CEdit*)GetDlgItem(IDC_RICHEDIT1);
edit1->GetWindowText(m_contents2);
m_contents2.TrimLeft();
m_contents2.TrimRight();
m_AdoConn.OnInitADOConn();
CString sql = "select * from records";
m_pRs = m_AdoConn.GetRecordSet((_bstr_t)sql);
m_pRs->MoveFirst();
while(m_pRs->adoEOF==0) //判断记录是否为空,EOF表示最后一个记录之后。
{
CString classify2=(char*)(_bstr_t)m_pRs->GetCollect("classify");
m_classify = classify2;
CString summary2=(char*)(_bstr_t)m_pRs->GetCollect("summary");
m_summary = summary2;
CString contents2=(char*)(_bstr_t)m_pRs->GetCollect("contents");
edit1->SetWindowText(contents2);
m_pRs->MoveNext();
}
//m_pRs->MoveFirst();
m_status = "Records Retrieved";
m_AdoConn.ExitConn();
UpdateData(false);
}
//clear
void NoteDB::OnButton3()
{
CEdit *edit1=(CEdit*)GetDlgItem(IDC_RICHEDIT1);
m_classify = "";
m_summary = "";
edit1->SetWindowText("");
m_status = "All cleared!";
UpdateData(false);
}
-End-
相关推荐
- Mac右键菜单如何设置?_mac 右键菜单
-
Mac的用户都知道,Mac和Windows很大的区别在于,Windows可以使用鼠标右键完成的很多快捷操作,例如右键剪切、右键新建文件、右键快速访问等等。在工作学习中,这种快捷操作会大大提高我们的工作...
- Office局部加密隐藏信息_office隐藏修改痕迹
-
除了日常使用的图片、音视频文件外,我们还常常和别人共享使用一些Word或Excel办公文件。而这些文件中的部分内容,也许是我们不希望别人看到的。这时,就需要对Word文档或Excel表格中的部分数据实...
- 不常见但100%好用的电脑快捷键_最全的电脑快捷键
-
办公人士或者经常使用电脑的人已经熟悉了常见的Ctrl+C/V等快捷键,想要更高效、专业的操作技巧来提升工作效率。接下来,同创双子双子IT运维工程师帮忙整理了一些不太常见但非常有用的快捷键。比如Alt+...
- U盘文件被隐藏怎么恢复 U盘文件恢复隐藏的方法
-
U盘文件被隐藏怎么恢复?U盘文件被隐藏其实这是中了一种U盘病毒,它会恶意的将U盘中的文件夹隐藏起来,采用常规的方法,都无法打开查看。这种U盘病毒会把文件夹的属性给篡改掉,文件设置被改成只读、隐藏,在文...
- win7查看隐藏的文件怎么操作 win7如何打开隐藏文件
-
win7查看隐藏的文件怎么操作?在使用电脑时,有一些用户会将文件设置为隐藏属性,以保护隐私。此外,还有一些系统文件默认处于隐藏状态。那么,如何操作才能打开这些隐藏文件呢?小编今天在这就为大家分享一下w...
- 系统小技巧:八个实用设置 藏于桌面右键
-
我们除了在桌面上执行鼠标单、双击操作外,常常也会用右键菜单命令查看文件或显示属性等。其实,除此之外,桌面里还隐藏着不少可被我们利用的实用右键操作项目。下面的这些Windows10桌面右键操作技巧,不...
- 移动硬盘中的隐藏文件如何恢复显示?可尝试这些方法
-
在使用移动硬盘的过程中,有时我们可能会遇到一些文件突然变得不可见或“隐藏”的情况。这种情况可能是由于多种原因造成的,如文件系统错误、病毒感染或误操作等。面对隐藏的文件,许多用户可能会感到困惑和不知所措...
- Win11怎么查看隐藏文件和文件夹?_如何查看windows隐藏文件夹
-
一般来说系统会对比较重要的文件和文件夹添加隐藏属性,很多朋友可能找半天都找不到,那么怎么找出这些隐藏文件和文件夹呢,今天系统之家小编来教大家Win11显示隐藏文件的设置方法,操作步骤其实挺简单的,希望...
- 隐藏电脑文件(夹)竟如此简单!再也不怕被偷窥了
-
导读:谁的电脑硬盘中还不存有一些珍藏多年的学习资料,可为了保护它们各位学习爱好者也真的是煞费苦心,不管是层层文件夹“套娃”隐藏也好,修改文件名甚至修改后缀名也好,效果都是非常差的,本期文章小君就聊一聊...
- 怎么打开隐藏文件夹?_文件夹怎么弄
-
有时在电脑上,我们会发现之前的文件或者文件夹不见了,很多人会觉得会不会是误删了文件之类的。其实还有一种可能,就是你的文件或者文件夹被隐藏起来了。怎么打开隐藏文件夹?一、文件或者文件夹被隐藏的原因隐藏是...
- 移动硬盘上的隐藏文件怎么能找出来
-
移动硬盘作为一种小巧而便携式的硬盘存储器,具备容量大、兼容性好、即插即用等优势,被广泛应用于办公和家庭生活中,那么在使用移动硬盘过程中,你是否遇到了文件被隐藏的问题呢?本文将介绍恢复移动硬盘隐藏文件的...
- 系统小技巧:“发送到”菜单问题巧解决
-
此前,我们已经通过本刊的一些文章熟悉了通过手动或软件的方法定制“发送到”菜单的基本方法。在使用“发送到”菜单的过程中,还可能会遇到一些问题。例如:“发送到”菜单越用越长,能不能在不编辑删减的情况下,调...
- WIN 10系统介绍(21) 重要文件的隐藏 私密文件的保护 显示隐藏文件
-
大家好,今天介绍电脑中重要文件和文件夹的隐藏以及显示。在每个人使用的电脑中,都有一些个人的私密的资料,比如一些账目,或者个人的照片,信件,技术文档,视频等等的一些资料。我们可能不希望所有登录的用户,都...
- 状态栏在哪?手机+电脑+软件里的它 一篇讲清位置和功能
-
状态栏就是设备或软件里显示状态信息的区域,能让你快速知道时间、电量等情况。下面告诉你不同设备和软件里状态栏在哪儿、有啥用。手机上的状态栏位置:屏幕最顶端的窄条,不管用什么APP,基本都在这儿。显示...
- excel隐藏的部分内容如何显示出来?3个方法帮助你!
-
excel隐藏的部分如何显示出来?你是否曾经在Excel中遇到过某些单元格被隐藏,或者某些数据在编辑时突然消失,让你感到困惑和无助?不要担心,今天我将向你揭示如何解决这些问题,让你轻松显示隐藏的部分。...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- 如何绘制折线图 (52)
- javaabstract (48)
- 新浪微博头像 (53)
- grub4dos (66)
- s扫描器 (51)
- httpfile dll (48)
- ps实例教程 (55)
- taskmgr (51)
- s spline (61)
- vnc远程控制 (47)
- 数据丢失 (47)
- wbem (57)
- flac文件 (72)
- 网页制作基础教程 (53)
- 镜像文件刻录 (61)
- ug5 0软件免费下载 (78)
- debian下载 (53)
- ubuntu10 04 (60)
- web qq登录 (59)
- 笔记本变成无线路由 (52)
- flash player 11 4 (50)
- 右键菜单清理 (78)
- cuteftp 注册码 (57)
- ospf协议 (53)
- ms17 010 下载 (60)