VC++对Access数据库的操作(查询、插入、更新、删除等)

VC++对Access数据库的操作(查询、插⼊、更新、删除等)Microsoft Office Access是由微软发布的关系数据库管理系统。Access数据库常应⽤于⼩型软件系统中,⽐如:⽣产管
理、销售管理、库存管理等各类企业管理软件,其最⼤的优点是:简单易学、使⽤灵活。
下⾯我们结合实例来详细说明,在VC++ MFC中,如何使⽤Access数据库⽂件进⾏数据的存储,如何实现对数据库中数据的查询、插⼊、更新和删除等操作。
⾸先,怎样创建⼀个可供VC++ MFC程序使⽤的Access数据库,并在该数据库中创建数据表呢?
第⼀步:打开Microsoft Office Access软件,点击“空⽩数据库”;
第⼆步:设置预创建空⽩数据库的⽂件名和⽂件类型(⽂件名:point32.mdb,⽂件类型:Microsoft Office Access 2000 数据库(*.mdb));
第三步:“创建”空⽩数据库;
第四步:为该数据库“设置数据库密码”(本例中密码设置为:1234);
第五步:在该数据库中创建⼀张表,例如:TestTab(编号,姓名,性别,年龄);
核酸染料
第六步:表创建完成后,保存并关闭数据库,然后将该数据库⽂件(point32.mdb)剪切到你的VC++程序debug或release⽬录中,则准备⼯作完成。
其次,在VC++ MFC中编写对该数据库中TestTab表进⾏数据查询、插⼊、更新、删除等操作的⽅法:
(1)导⼊才⽤ado⽅式访问Access数据库所需的DLL
#import "C:\Program Files\Common Files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")//ado访问ACCESS数据库必需(2)在程序的⼊⼝函数中,初始化OLE以⽀持应⽤程序
AfxOleInit();
(3)获取应⽤程序(EXE)所在路径
CString path;//应⽤程序所在路径
char filepath[256];
char* pPath;
GetModuleFileName(AfxGetInstanceHandle(),filepath,256);
pPath  = strrchr(filepath,'\\');
*pPath = 0;
path = filepath;
(4)创建数据库访问连接字符串
char* PtConnectStr;//数据库连接字符串
CString connstr =  "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";
connstr += path;
connstr += "\\point32.mdb";
connstr += ";Jet OLEDB:Database Password='1234'";
PtConnectStr = connstr.GetBuffer(0);
(5)查询TestTab表中数据⽅法实现
//查询表中数据,并显⽰在List Control控件中
void CPoint32Dlg::ReadUserInfo()
{
{
//select
m_list.DeleteAllItems();//清空列表
_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;
try
永远的谭嗣同{
m_pConnection.CreateInstance(__uuidof(Connection));
m_pConnection->Open(PtConnectStr,"","",adModeUnknown);
}
catch(_com_error e)
{
CString errormessage;
errormessage.Format("数据库连接失败.\r错误信息:%s",e.ErrorMessage());  //AfxMessageBox(errormessage);
MessageBox(errormessage,"连接失败",MB_ICONEXCLAMATION);
if(m_pConnection->State)
m_pConnection->Close();
return;
}
try
{
阳宝//获取数据,放在数据集中
CString cmd;
cmd.Format("SELECT * FROM TestTab");
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open(cmd.GetBuffer(),
_variant_t((IDispatch*)m_pConnection,true),
adOpenStatic,
adLockOptimistic,
adCmdText);
//处理数据,并显⽰
_variant_t varbuffer;
long index = 0;//注意:必须是long类型
int countItem = 0;
CString str;
芽孢杆菌while(!m_pRecordset->adoEOF)
{
index = 0;
//读ID号
varbuffer = m_pRecordset->GetCollect(_variant_t(index));
if(varbuffer.vt!=VT_NULL)
{
str.Format("%d",varbuffer.lVal);
m_list.InsertItem(countItem,str.GetBuffer());
}
//读其它的信息
while(index < 3)
{
index++;
varbuffer = m_pRecordset->GetCollect(_variant_t(index));
if(varbuffer.vt!=VT_NULL)
{
str = (LPCTSTR)(_bstr_t)varbuffer;
m_list.SetItemText(countItem,index,str.GetBuffer());
}
}
m_pRecordset->MoveNext();
m_pRecordset->MoveNext();
countItem++;
}
}
catch(_com_error &e)
{
//AfxMessageBox(e.Description());
MessageBox(e.Description(),"数据库操作失败.",MB_ICONEXCLAMATION);  if(m_pRecordset->State)
m_pRecordset->Close();
if(m_pConnection->State)
m_pConnection->Close();
return;
}
if(m_pRecordset->State)
m_pRecordset->Close();
氨基酸螯合物
if(m_pConnection->State)
蕲州在线m_pConnection->Close();
}
(6)向TestTab表中插⼊数据⽅法实现

本文发布于:2024-09-24 23:24:42,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/24915.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据库   数据   创建   程序   管理   查询   连接   访问
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议