问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

mfc中连接access数据库的详细步骤都是什么?

发布网友 发布时间:2022-04-20 23:28

我来回答

4个回答

热心网友 时间:2023-10-01 19:05

access我没连过 我只连过sql2000
我把我那时候找到的资料发上来给你参考下 看看可以借鉴不
MFC 连接SQL SERVER(ODBC方式)
1、建立数据库

这一步比较简单,直接打开SQL Server Management Studio,根据自己需要设计数据库中的表,及其之间的依赖关系等等!要想设计一个完美的数据库,就必须了解数据库的基本知识。这里不再具体说了。这里我们假设我们的数据库名字为Test01

2、配置数据源

数据库设计建立完成后,它只是单独的几张表,我们并不能在程序中去访问它,因为程序并不知道数据库在哪里。因此,就要在应用程序跟数据库之间建立连接。

配置数据源说通俗了就是为数据库创建一个对外的窗口,应用程序通过这个窗口来访问数据库中的数据。具体配置步骤为:

1) 打开 控制面板--〉管理工具--〉数据源,在用户DSN面板选择 “添加”

2) 在数据源驱动程序中选择 “SQL Server” --〉完成,即打开 “创建到SQL Server 的新数据源”

3) 在“数据源名称”中填入名称,我们填 TestSQL01,然后选择 服务器,在其中选择要连接到的SQL Server服务器。(如果你电脑的SQL Server服务打开的话,就会有自己的主机名。或者选择网络上的某个SQL Server。

4) 点击 下一步 配置认证信息

5) 配置完后点击 下一步, 选中 “更改默认的数据库为”复选框,在下拉中选择自己刚才建立的要连接的数据库。 (这一步很重要,一般一个Server上会有多个数据库,如果不更改数据源的默认数据库,你 建立的数据源将连接到默认的数据库,这样就会造成程序中执行SQL语句时“对象名无效”的错误,即找不到你指定的数据表等)

6) 选择完数据库后直接 下一步--〉完成 就完成了数据源的配置。接下来会出现配置数据源的基本信息,可以通过 “测试数据源”来测试数据源是否配置成功。

3、 数据库的连接

建立完数据库,又配置好了数据源,接下来就可以在程序中通过数据源来访问数据库了。

1) 首先要在程序中引入MFC ODBC数据库的定义文件 #include <afxdb.h>

2) 定义CDataBase数据库对象, CDataBase m_db;

3) 利用CDataBase类的OpenEx函数建立和数据库的连接;

m_db.OpenEx(_T("DSN=TestSQL01;"),CDatabase::noOdbcDialog);

/*这里的TestSQL01 即为步骤2中建立的数据源,然后根据OpenEx函数格式填入参数,主要是用户名、密码之类,这里没有设置,所以就没有*/

具体连接还要捕捉OpenEx可能抛出的异常:

TRY
{
m_db.OpenEx(_T("DSN=TestSQL01;"),CDatabase::noOdbcDialog);
rs.m_pDatabase = &m_db;
}
CATCH(CDBException,ex)
{
AfxMessageBox(ex->m_strError);
AfxMessageBox(ex->m_strStateNativeOrigin);
}
AND_CATCH(CMemoryException,pEx)
{
pEx->ReportError();
AfxMessageBox(_T("memory exception"));
}
AND_CATCH(CException,e)
{
TCHAR szError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox(szError);
}
END_CATCH

4、 数据库操作

在完成了上面的步骤后,就可以使用SQL语句对数据库进行操作了。基本的操作有 查询、添加、修改、删除等。这里主要说一下查询,其他操作都与添加步骤类似。

1)查询

查询的基本步骤可以看下面的这段代码:

CString sql = _T("SELECT Password FROM UserInfo WHERE (UserID = 123“) //要执行的SQL语句

CString psd; //存放查询结果
TRY
{
rs.Open(AFX_DB_USE_DEFAULT_TYPE,sql); //打开查询记录
rs.GetFieldValue(_T("Password"),psd); //得到数据
}
CATCH(CDBException,ex)
{
AfxMessageBox(ex->m_strError);
AfxMessageBox(ex->m_strStateNativeOrigin);
}
AND_CATCH(CMemoryException,pEx)
{
pEx->ReportError();
AfxMessageBox(_T("memory exception"));
}
END_CATCH
2)插入

相对于查询,插入、删除、更改操作就简单得多了。 CString sql = _T("USE Test01 INSERT UserInfo(UserID,UserName) VALUES(" 123, 'Bob');

try
...{
m_db.ExecuteSQL(sql);
}
..............

热心网友 时间:2023-10-01 19:05

比如在你的工程目录中建一个 dbf\vir.mdb //Access数据库,然后你需要做以下操作:
1.在StadAfx.h里面添加#include <afxdb.h> //新加入头文件,用于CDatabase类。
2.在StadAfx.h最后的#endif上添加#import "msado15.dll" no_namespace rename("EOF","rsEOF")
这时,你要把msado15.dll拷到与dbf同级的目录,也就是工程目录里,当然你可以该路径
3.在你自己的工程里,比如MyProc是你建的工程,添加代码
CMyPorcApp::CMyProcApp(){
CoInitialize(NULL);
SQLConfigDataSource(NULL,ODBC_ADD_DSN, "Microsoft Access Driver (*.mdb)",\
"DSN=MyImage;DBQ=dbf\\vir.mdb;DEFAULTDIR=dbf"); //注册本地数据库数据源
m_db.OpenEx("DSN=MyImage;;",CDatabase::noOdbcDialog);//MyImage是数据源名称
}
4.在前面的函数体之前创建全局变量CDatabase m_db; CRecordset m_rec(&m_db);
5.使用数据库{
CString strSQL="select * from virdb";
BSTR bstrSQL=strSQL.AllocSysString();
m_rec.Open(CRecordset::dynaset,strSQL);
while(!m_rec.IsEOF())
{
// 使用数据库的代码,读出来的数据都是字符串型的
CString MyVirable;
m_rec.GetFieldValue("字段名",MyVirable); //将某个字段的当前行的值读到MyVirabl中
// ......
m_rec.MoveNext(); //将记录移到下一行
}
}

本程序是自动注册数据源的,当然可以手动注册数据源,关于如何注册数据源并不麻烦,叙述起来不太方面,你就参考其他的吧。不过建议不用手动注册数据源,这样你地程序移植性不好.

热心网友 时间:2023-10-01 19:06

比如在你的工程目录中建一个 dbf\vir.mdb     //Access数据库,然后你需要做以下操作:

1.在StadAfx.h里面添加#include <afxdb.h> //新加入头文件,用于CDatabase类。

2.在StadAfx.h最后的#endif上添加#import "msado15.dll" no_namespace rename("EOF","rsEOF")

这时,你要把msado15.dll拷到与dbf同级的目录,也就是工程目录里,当然你可以该路径

3.在你自己的工程里,比如MyProc是你建的工程,添加代码

CMyPorcApp::CMyProcApp(){

CoInitialize(NULL); 

SQLConfigDataSource(NULL,ODBC_ADD_DSN, "Microsoft Access Driver (*.mdb)",\

"DSN=MyImage;DBQ=dbf\\vir.mdb;DEFAULTDIR=dbf"); //注册本地数据库数据源

m_db.OpenEx("DSN=MyImage;;",CDatabase::noOdbcDialog);//MyImage是数据源名称

}

4.在前面的函数体之前创建全局变量CDatabase m_db; CRecordset m_rec(&m_db);

5.使用数据库{

CString strSQL="select * from virdb";  

BSTR bstrSQL=strSQL.AllocSysString();

m_rec.Open(CRecordset::dynaset,strSQL);

while(!m_rec.IsEOF()) 

{

// 使用数据库的代码,读出来的数据都是字符串型的

CString MyVirable;

m_rec.GetFieldValue("字段名",MyVirable);  //将某个字段的当前行的值读到MyVirabl中

// ......

m_rec.MoveNext(); //将记录移到下一行

}

}

本程序是自动注册数据源的,当然可以手动注册数据源,关于如何注册数据源并不麻烦,叙述起来不太方面,你就参考其他的吧。不过建议不用手动注册数据源,这样你地程序移植性不好.

热心网友 时间:2023-10-01 19:06

我用ADO连过 跟2楼说的类似
不过好久了 嘿嘿……
回头找找跟你说啊
mfc中如何连接access数据库 求详细步骤

1) 首先要在程序中引入MFC ODBC数据库的定义文件 #include &lt;afxdb.h&gt; 2) 定义CDataBase数据库对象, CDataBase m_db;3) 利用CDataBase类的OpenEx函数建立和数据库的连接;m_db.OpenEx(_T("DSN=TestSQL01;"),CDatabase::noOdbcDialog);/*这里的TestSQL01 即为步骤2中建立的数据源...

...C语言连接access数据库、最好能详细点儿写出步骤、如果可以的话,能...

你先配置数据库 http://zhidao.baidu.com/question/209967914.html 然后举个例子,连接SQL 我连access的给你看一下 别忘了 mfc AfxOleInit(); 或者 win32 coInitial什么东东(初始化com的)// 打开数据库 strDBClass.Format(_T("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Jet OLEDB:Dat...

MFC 通用操作Access 数据库的驱动

在“控制面板”中双击“管理工具”图标,然后在新出现的窗口中双击“数据源(ODBC)”,在弹出的对话框中选中“用户DSN”中的“dBASE Files”,单击“添加”按钮,从弹出的对话框中选中“Microsoft Access Driver(*.mdb)”。单击“完成”后,将弹出一个新的对话框,在数据源名及说明后的编辑框中填入表...

如何将MFC的数据存入access数据库并能从MFC中获取历史数据

存储数据简单,Access数据库的话就是用ADO,很简单。可以找找徐景周做的代码看看。关键是绘图。这个绘图的话,就使用简单的吧,MoveTo() LineTo().把这2个函数看看就会了。再给你个画图的例子。MFC控件上绘图。根据传入的数据绘制曲线。

如何用C#动态创建Access数据库和表

首先创建一个基于对话框的MFC应用程序ADO_Access.sln.然后在stdafx.h头文件末尾添加(网上有说在某个#include后面的添加的,也有说在合适位置添加的,我这里直接添加在最末尾)import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")添加完成后#imp...

mfc连接access 2003,始终连接不上,试过网上很多方法,还是以运行就弹出Ru...

非常简单,我用的不需要建数据源,数据是以文件形式访问 代码 try { CDatabase db;db.Open(NULL,false,false,"ODBC;DRIVER={MICROSOFT ACCESS DRIVER (*.mdb)};DBQ=手机进销存管理数据库.mdb");//手机进销存管理数据库.mdb 文件形式 CRecordset rs(&amp;db);rs.Open(CRecordset::forwardOnly,"select...

MFC中使用ADO连接access数据库,但是总在打开记录集这里报错中断,代码...

1、记录集的CreateInstance和Open也需要放到try...catch...里面,于是发生异常的时候可以通过e.Description()得知具体异常信息;2、AfxMessageBox出来之后,这里需要退出该函数,否则连接都没打开,下面的代码继续执行毫无意义;3、别的没看出什么问题,但是我打开记录集一般都用这种方式:_RecordsetPtr rs = m...

MFC下如何查看access数据库中有多少个表

1,打开该access数据库,数据库工具,点击关系。2,然后便会出现各个表之间对应的关系。点击它们之间的连线,右击,便可以看到它们的关系了

MFC 利用ADO连接ACCESS数据库失败 怎么回事呀

先导入ado库 pragma warning(disable:4146)import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","ENDOFFILE")BOOL CADODlg::GetData(){ CoInitialize(NULL);try { _ConnectionPtr pConn("ADODB.Connection");_bstr_t Connection="Provider=Microsoft.Jet....

如何在做MFC时,直接用驱动程序把我所编译的程序与access数据库...

OK“~没有问题的~使用ADO技术吧~我之前和你一样烦恼~要是做出来的软件在每台电脑上面都要配置一次~那就太麻烦啦~所以相信我ADO是可以的~对了~给你推荐一篇讲ADO技术的文章,我入门的时候就是看的它:http://www.vckbase.com/document/viewdoc/?id=496,遇到问题可以找我帮忙哦~我这个做得还...

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
类风湿关节炎是免疫系统疾病吗 免疫系统病是什么病 免疫系统病有哪些 ...A.过敏性鼻炎B.系统性红斑狼疮C.类风湿性关节炎D.镰刀型贫血_百度... excel比较大小函数min的使用教程 梦见大牙掉了一颗,还有血,谁能帮我解下梦,不会是有什么不好的事吧... 我用扣扣申请了一个微信号,手机号码申请了一个微信号,现在想用扣扣和手... 我之前有一个微信号,我取消登陆后再次用我的手机号码再申请微信号码,之 ... ...卸载了,是用手机号注册的,现在想用扣扣号重新注册,应该怎么办_百度... 新办的手机号码,被我哥注册了一个微信号,把我真实的名字弄成了微信号... ...微信号了,想再用同一手机另用qq再申请一个微信号咋申请呀?谢谢_百 ... Java如何连接Access数据库(两种方式实例代 如何利用Access链接SQL数据库 如何使用ODBC来连接ACCESS数据库 access数据库如何连接……(C#) access数据库中各表间的连接关系是如何建立的 如何:连接到 Access 数据库中的数据 教你如何解决access数据库连接错误 如何连接access数据库 服务器的access数据库用什么工具连接数据库 求问这幅图的动漫名字,跪求!跪求!!跪求!!! 血液生化检验中S/L项是什么意思? 帮我看看尿常规检查结果。 求Adobe Premiere破解版资源 单反镜头上的数字都表示什么意思啊?比如:AF-S NI... 异形魔怪完整版电影 G3/8螺纹底径是多少 vivo Y55s电池是多大的? 求《异界之剑仙传奇》全本txt完结小说,谢谢 数控车床编程G代码格式以及详细说明 网球拍的标准规格是多少? MFC中如何连接access数据库? 如何进行C#连接Access数据库的细节操作 已经安装好程序,怎么连接access数据库 Java如何连接access数据库 access数据库怎么连接网页 eclipse连接access数据库 如何用vba代码将access数据库连接求代码 DW里面html5怎么连接access数据库 jdbc api怎么与access数据库连接 4k超高清电视机50寸的有吗,大家推荐推荐款来看看? 夏普4k50寸电视耗电量多少 海信电视4k50寸和43寸尺寸差多少 50寸4K电视机选哪个牌子好 买50寸左右4K电视,哪个好? 50寸4K电视机选哪个牌子好? 现在一台真正的4K智能50英寸电视最少需多少钱 4K王牌电视,50英寸的多少钱一台广州广东产的? 赛扬G1820核显能不能带动4K分辨率的50寸电 50吋4k超高清电视,K是什么意思? 长虹电视50寸4k电视多少瓦
  • 焦点

最新推荐

猜你喜欢

热门推荐