精华内容
下载资源
问答
  • VS2013 MFC连接Access数据库(ADO)详细版实例操作(含Combo Box读取数据库内容)
  • MFC连接ACCESS数据库详细介绍

    热门讨论 2013-03-01 20:37:01
    还是比较不错的一个文档,对mfc通过ado连接access数据库有很详细的介绍,自习阅读一下,是可以看明白的
  • MFC连接Access数据库

    千次阅读 2018-11-26 21:24:06
    新建一个基于单文档的MFC应用程序。在应用程序向导中运行到“数据库支持”页面时作如下修改: 在“客户端类型”项选择“OBDC”,单击“数据源”,出现对话框,并作如下修改: 如果不是第一次运行的话,可以...

    新建一个基于单文档的MFC应用程序。在应用程序向导中运行到“数据库支持”页面时作如下修改:

    在“客户端类型”项选择“OBDC”,单击“数据源”,出现对话框,并作如下修改:

    如果不是第一次运行的话,可以选择以前建立的数据源,就不用再新建了。下面说说新建的方法。

    选择“新建”,然后会弹出

    直接忽视这个对话框,点击“确定”,点击下一步,直到运行到如下步骤:

    选中“Microsoft  Acess Driver(*.mdb)”,单击“下一步”,直到执行到如下步骤:

    输入数据源名“Database Example For VC++”(名字可以随便写),单击“数据库”组框中的“选择”,

    选择要添加到MFC中的数据库,比如“Database3.mdb”。单击确定,然后会出现如下对话框:

    可以直接单击确定,进入到下一步:

    选中建立的数据的表格,比如我建立的为“表一”。单击“确定”。然后下面的步骤无需修改。

    展开全文
  • mfc连接access数据库

    2021-01-20 15:58:51
    导入ADO连接的系统文件, #import “C:\Program Files\Common Files\System\ado\msado15.dll” no_namespace rename(“EOF”,“adoEOF”) 用的是绝对路径,放在stdafx.h里面,不能放在太上面,会爆一个错误,还需要...

    第一步

    导入ADO连接的系统文件,
    #import “C:\Program Files\Common Files\System\ado\msado15.dll” no_namespace rename(“EOF”,“adoEOF”)
    用的是绝对路径,放在stdafx.h里面,不能放在太上面,会爆一个错误,还需要去删其他的,如
    在这里插入图片描述
    但是放到下面来,就可以了,
    在这里插入图片描述
    至于还可以不用绝对路径,可以用相对路径,把msado15.dll复制到根目录下面,但是会报错,我始终找不到解决办法,网上找了一堆都不行,这种方法更好,但是解决不了。
    在这里插入图片描述

    第二步:直接建立连接

    try
    	{
    
    		CoInitialize(NULL);
    		m_pConnection = _ConnectionPtr(__uuidof(Connection));
    		m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Database1.mdb","","",adModeUnknown);
    		//注意,这个地方不能用新版本的,比如后缀名为accdb的时候,会报错
    		CoUninitialize();
    	
    	}
    	catch (_com_error e)
    	{
    
    		SetDlgItemText(IDC_EDIT_RECV,TEXT("连接失败"));
    	}
    

    第三步:查询数据

    _RecordsetPtr Ptr = NULL;
    	Ptr.CreateInstance(__uuidof(Recordset));
    
    	CString sql = _T("SELECT* FROM information where id=3");
    	_bstr_t sqlToExecute = sql;//可直接转换!
    	Ptr = m_pConnection->Execute(sqlToExecute,NULL,adCmdText);
    	//第三个应该是他类里面自己的参数把,反正改了就会报错
    	_variant_t roader;
    	roader = Ptr->GetCollect(_T("性别"));			//这个参数是字段名,如果表中不存在参数则会报错
    	CString str=(LPCTSTR)(_bstr_t)roader;
    	SetDlgItemText(IDC_EDIT_RECV,str);
    	m_pConnection->Close();
    

    在这里插入图片描述

    展开全文
  • 实现C++MFC连接ACCESS数据库的教程

    热门讨论 2013-04-22 09:46:18
    一步一步教会你实现在MFC的环境下,实现数据库连接
  • 话不多说,先上图,如果你需要的是这样的程序,那么...解决办法各位可以自行百度)具体的操作步骤:Step1:首先新建一个基于对话框的MFC程序,我们封装一个专门用于数据库连接的类(不放在页面里是为了代码的清晰以...

    话不多说,先上图,如果你需要的是这样的程序,那么可以下载下来看一看,帖子里也会附上比较具体的操作步骤:


    先附上下载地址:程序下载地址 程序已经经过VS 2013+Windows 7+Access 2003的测试(运行出现其他问题应该多为环境问题,解决办法各位可以自行百度)

    具体的操作步骤:

    Step1:

    首先新建一个基于对话框的MFC程序,我们封装一个专门用于数据库连接的类(不放在页面里是为了代码的清晰以及后期维护的方便):


    注意:很多人愿意用connect来取名字,虽然这样我们封装类的时候不会有任何问题,但是后面进行数据库操作的时候就会报错,各位一定要避免使用此类关键字作为你得类名:


    Step2:

    我们需要导入ADO连接的系统文件,同时声明结果集:

    首先是导入文件,我这里使用的是相对路径,推荐使用相对路径,这样不会出现后期因为系统(版本和位数)不一致造成的各种错误,代码:

    #import "msado15.dll" no_namespace rename("EOF", "adoEOF")

    相对路径需要将系统的这个文件复制到源文件的路径下(后面的数据库文件也一样,后面不再过多叙述):


    如果各位想用绝对路径也可以,注意,如果使用绝对路径需要区分你的系统的位数,代码:

    win32位系统:

    #import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")  

    win64位系统(Debug时也需要选择成X64):

    #import "C:\Program Files (x86)\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "adoEOF") 

    完成后应该是这样的(注意!是在头文件导入)


    Step3:

    依旧是在头文件中的Public中声明结果集:

    _ConnectionPtr m_pConnection;//连接access数据库的链接对象  
    _RecordsetPtr m_pRecordset;//结果集对象  

    完成后应该是这样的:


    (导入后可能出现系统无法识别的问题,出现红色下划线,这时候我们可以等待一会或者保存项目重启VS2013即可消除错误提示)

    Step4:

    首先我们要新建一个Access数据库,这里要主要Access数据库的文件版本有两种(类似于Doc和Docx),在连接数据库时要注意!

    1.2007版本以前的access文件扩展民是mdb(本程序使用!)
    2 2007版本以后的access文件扩展名是accdb
    注:MFC连接Access数据库后在别的机器上运行时不需要安装Access的,这样让数据库的使用可以更宽泛,同时这一连接模式可以兼容(Win XP—Win 10的所有系统版本)

    进行数据库连接,这里我们需要在数据库连接类里添加初始化函数(如果是直接放到主界面中,直接将连接代码放入初始化函数中即可)这里演示封装连接类的做法,首先新建初始化函数:


    然后在初始化函数中编辑连接代码:

    	try{
    
    		CoInitialize(NULL);
    		m_pConnection = _ConnectionPtr(__uuidof(Connection));
    		m_pConnection->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=mfc_access.mdb;";
    		m_pConnection->Open("", "", "", adConnectUnspecified);
    	}
    	catch (_com_error e){
    
    		AfxMessageBox(_T("数据库连接失败!"));
    		return FALSE;
    	}

    这时我们可以进行一次Debug,如果程序正常运行,不报错,说明我们的数据库已经连接成功了

    Step5:

    数据库连接成功后,我们添加一个List Contrl控件来显示查询内容(具体使用读者可以百度,避免本文过于冗长,这里只介绍几个关键值的设置):



    Step6:

    进行数据库的相应操作(增、删、改、查),首先是查询操作:

    try
    		{
    			_variant_t RecordsAffected;
    			cmd.m_pRecordset.CreateInstance(__uuidof(Recordset));
    			CString search_sql;
    			search_sql = "SELECT * FROM cmdchoose";
    			cmd.m_pRecordset = cmd.m_pConnection->Execute(search_sql.AllocSysString(), NULL, adCmdText);
    			while (!cmd.m_pRecordset->adoEOF)
    			{
    				CString id;
    				CString chooseid;
    				CString choosevalue;
    				id = cmd.m_pRecordset->GetCollect("id").bstrVal;
    				m_list.InsertItem(0, id);
    				chooseid = cmd.m_pRecordset->GetCollect("chooseid").bstrVal;
    				m_list.SetItemText(0, 1, chooseid);
    				choosevalue = cmd.m_pRecordset->GetCollect("choosevalue").bstrVal;
    				m_list.SetItemText(0, 2, choosevalue);
    				cmd.m_pRecordset->MoveNext();
    			}
    			cmd.m_pRecordset->Close();
    		}
    		catch (_com_error e)
    		{
    			AfxMessageBox(_T("搜索失败!"));
    			return;
    		}

    增加数据库条目:

    	_variant_t RecordsAffected;
    	CString AddSql;
    	CString cmdchooseID;
    	CString cmdchoose;
    	CString cmdchoosevalue;
    	m_edit_chooseid.GetWindowText(cmdchooseID);
    	m_editchoose.GetWindowText(cmdchoose);
    	m_editchoosevalue.GetWindowText(cmdchoosevalue);
    	AddSql.Format("INSERT INTO cmdchoose(id,chooseid,choosevalue) VALUES('" + cmdchooseID + "','" + cmdchoose + "','" + cmdchoosevalue + "')");
    	try{
    		cmd.m_pConnection->Execute((_bstr_t)AddSql, &RecordsAffected, adCmdText);
    		AfxMessageBox(_T("添加命令成功!"));
    		OnBnClickedSelect();
    	}
    	catch (_com_error*e){
    		AfxMessageBox(_T("添加命令失败!"));
    	}

    删除数据库条目:

    CString str;
    	CString choose_del;
    	m_choosedel.GetWindowText(choose_del);
    	try
    	{
    		str.Format("DELETE from cmdchoose where id='" + choose_del + "'");
    		_variant_t RecordsAffected;
    		cmd.m_pConnection->Execute((_bstr_t)str, &RecordsAffected, adCmdText);
    		AfxMessageBox(_T("删除成功!"));
    		OnBnClickedSelect();
    	}
    	catch (_com_error*e)
    	{
    		AfxMessageBox(e->ErrorMessage());
    	}

    这里我在程序的下方新建了一个Combo控件用来演示数据库里的内容如何加入到Combo box中以及多个Combo的联动,这里主要困惑点在于如何点击Combo box实时进行数据库内容的读取,主要分为几步:

    a、添加下拉响应函数,点击下拉时触发响应

    b、进行数据库查询

    c、将查询到的字符串进行处理,添加到Combo box中进行显示

    这里触发响应的代码如下:

    void CdatabaseDlg::OnDropdownComboCity()
    {
    	// TODO:  在此添加控件通知处理程序代码
    	{
    		maincmd.OnInitDialog();
    		UpdateData(true);
    		CString strName;
    		m_choosename.ResetContent();
    		try
    		{
    			maincmd.m_pRecordset.CreateInstance(__uuidof(Recordset));
    			CString search_sql1;
    			search_sql1.Format(_T("SELECT * FROM cmdchoose"));
    			maincmd.m_pRecordset = maincmd.m_pConnection->Execute(search_sql1.AllocSysString(), NULL, adCmdText);
    			while (!maincmd.m_pRecordset->adoEOF)
    			{
    				strName = maincmd.m_pRecordset->GetCollect("id").bstrVal;
    				m_choosename.AddString(strName);
    				maincmd.m_pRecordset->MoveNext();
    			}
    			maincmd.m_pRecordset->Close();
    		}
    		catch (_com_error e)
    		{
    			AfxMessageBox(_T("搜索失败!"));
    			return;
    		}
    	}
    }
    部分内容参考的博文: VS2013在MFC中使用ADO方法操作Access2013数据库
    展开全文
  • 我们需要导入ADO连接的系统文件,同时声明结果集: 首先是导入文件,我这里使用的是相对路径,推荐使用相对路径,这样不会出现后期因为系统(版本和位数)不一致造成的各种错误,代码: #import "msado15.dll" no...

    Step1:

    我们需要导入ADO连接的系统文件,同时声明结果集:

    首先是导入文件,我这里使用的是相对路径,推荐使用相对路径,这样不会出现后期因为系统(版本和位数)不一致造成的各种错误,代码:

    #import "msado15.dll" no_namespace rename("EOF", "adoEOF")

    如果各位想用绝对路径也可以,注意,如果使用绝对路径需要区分你的系统的位数,代码:

    win32位系统:

    #import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")  

    win64位系统(Debug时也需要选择成X64):

    #import "C:\Program Files (x86)\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "adoEOF") 

    完成后应该是这样的(注意!是在头文件导入)

    Step2:

    依旧是在头文件中的Public中声明结果集:

    _ConnectionPtr m_pConnection;//连接access数据库的链接对象  
    _RecordsetPtr m_pRecordset;//结果集对象  

     

    Step3:

    首先我们要新建一个Access数据库,这里要主要Access数据库的文件版本有两种(类似于Doc和Docx),在连接数据库时要注意!

    1.2007版本以前的access文件扩展民是mdb(本程序使用!)
    2 2007版本以后的access文件扩展名是accdb
    注:MFC连接Access数据库后在别的机器上运行时不需要安装Access的,这样让数据库的使用可以更宽泛,同时这一连接模式可以兼容(Win XP—Win 10的所有系统版本)

    进行数据库连接,这里我们需要在数据库连接类里添加初始化函数(如果是直接放到主界面中,直接将连接代码放入初始化函数中即可)这里演示封装连接类的做法,首先新建初始化函数:

    然后在初始化函数中编辑连接代码:

    	try{
     
    		CoInitialize(NULL);
    		m_pConnection = _ConnectionPtr(__uuidof(Connection));
    		m_pConnection->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=mfc_access.mdb;";
    		m_pConnection->Open("", "", "", adConnectUnspecified);
    	}
    	catch (_com_error e){
     
    		AfxMessageBox(_T("数据库连接失败!"));
    		return FALSE;
    	}

    这时我们可以进行一次Debug,如果程序正常运行,不报错,说明我们的数据库已经连接成功了

    展开全文
  • MFC 连接ACCESS数据库

    2014-04-13 08:47:55
    使用MFC连接ACCESS数据库,并实现插入数据库等操作
  • MFC连接access数据库

    2021-09-03 14:09:04
    //在stdaxh.h引入ADO支持库 #import "c:\program files\common files\system\ado\msado...//检查是否创建access数据库 CString m_str = ""; m_str.Format("\\Alarm.mdb"); CString strPath = Getpath() + m_str;...
  • MFC用ADO连接方式连接access数据库

    热门讨论 2013-07-30 21:37:03
    自己在学习MFC过程中写的一个MFC连接数据库程序,采用ADO方式连接Access数据库 里面有很多注释,希望可以帮助初学者学习MFC知识.
  • (1)新建一个Access数据库文件。将其命名为data.mdb,并创建好表、字段。 (2)为系统添加数据源。打开“控制面板”—>“管理工具”—>“数据源”,选择“系统DSN”,点击右边的“添加”按钮,选择...
  • 本来只想写一个小小的程序,结果遇到不少问题,本来连接的是*.accdb格式的数据库用 m_strDSN = _T("Provider=Microsoft.jet.OLEDB.4.0;Data Source=G:\\ConsumeRecord\\ConsumeRecord\\expenditure.accdb");却报...
  • 在VS2019环境下运行的MFC程序,连接ACCESS,可进行借阅查找,可记录借阅历史,有一定信息比对、纠错功能。(文件附上程序结构图)
  • 关于MFC连接ACCESS数据库,并对数据库的基本操作
  • 此通讯录系统基于MFC设计,利用access建立数据库来保存通讯录信息,联系人信息包括姓名、手机号码、固定电话、电子邮箱、QQ和备注等。 系统以菜单方式工作,具有信息录入功能、信息浏览功能、可根据姓名排序、信息...
  • 1.设置数据源 打开控制面板--->系统和安全--->管理工具--->ODBC Data Sources(32 bit...这里我使用的是ACCESS数据库,数据源的配置如下: 2.创建包含数据库的MFC对话框(其它也可以)工程 ...
  • MFC操作Access数据库

    千次阅读 2019-02-25 23:19:17
    1、在头文件中导入ADO连接库 //导入ADO连接库 #import "C:\Program Files\Common Files\system\ado\msado15.dll" no_namespace rename("EOF","adoEof") //定义变量 _ConnectionPtr m_...
  • MFC操作ACCESS数据库

    2020-12-29 14:18:01
    MFC + Access数据库操作,读取Access数据库存储图片bitmap案例,需要的朋友可以下载学习参考.oledb对象存储读取.显示在picture控件案例.
  • vs2008连接access的示例,ado连接access及对access操作。
  • mfc连接access2010数据库失败问题

    千次阅读 2016-02-25 15:50:51
    mfc连接access2010数据库失败问题 http://bbs.csdn.net/topics/390574602 大家好,我再用MFC连接我的一个ACCESS数据库data1base.accdb,下面是我的部分程序,可是运行结果是“连接数据库失败”,我用ADO助手测试...
  • //初始化数据库连接 BOOL DataBaseHelper::initADOConn() { bSuccess = TRUE; if(NULL == pConnection) { ::CoInitializeEx(NULL,COINIT_APARTMENTTHREADED); //得到当前程序路径 CString sPath; ...
  • MFC 连接ACCESS 数据库

    千次阅读 2013-11-22 10:35:01
    void CDlg::OnBnClickedButtonlink() // 部分代码参考网上的 { // TODO: 在此添加控件通知处理程序代码 ... if(!AfxOleInit()) { AfxMessageBox("OLE初始化错!...//链接数据库对象 HRESULT hr; try{
  • MFC连接ACCESS数据库

    千次阅读 2014-05-06 20:23:24
    这里介绍一下简单的数据库编程,C++利用ADO连接ACCESS数据库,进行简单的插入、删除、读取、修改操作。利用ADO连接ACEESS和连接MS—SQL大同小异,只是连接驱动等细节不同而已。 下面就介绍数据库编程的基本步骤 ...
  • 自己写的MFC连接ACCESS数据库读取其中的坐标画图 连接方式是ADO,画图时采取GDI+双缓冲技术

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,179
精华内容 1,671
关键字:

mfc连接access数据库