Visual Studio 2013 VC++ 数据库的简单使用

写在开头.文章中的的内容不是自创,是参考别人的内容修改转化成自己容易理解的内容,做为学习的记录。


参考的地址有:http://blog.****.net/u012784288/article/details/51837826             http://blog.****.net/u012388338/article/details/39393105


下面是整理的内容


建立一个数据文件,

1. 我用的2010的office

Visual Studio 2013 VC++ 数据库的简单使用Visual Studio 2013 VC++ 数据库的简单使用Visual Studio 2013 VC++ 数据库的简单使用Visual Studio 2013 VC++ 数据库的简单使用

2.填写自己的数据,然后保存。

Visual Studio 2013 VC++ 数据库的简单使用Visual Studio 2013 VC++ 数据库的简单使用

建立对话框

1.  建立一个单个对话框,添加以下图的控件。

Visual Studio 2013 VC++ 数据库的简单使用

Visual Studio 2013 VC++ 数据库的简单使用

2.在头文件stdafx.h中添加下面语句来支持ADO的组件类型库,因为操作会有32/64位区分。


#include "UrlMon.h"              //下面的包含头文件也可以使用,没有去研究功能

 

//#include "Shlwapi.h"

 

//#include "ShObjIdl.h"

 

//#include "string.h"

 

 

#ifdef _UNICODE

#if defined_M_IX86

#pragma comment(linker,"/manifestdependency:\"type='win32'name='Microsoft.Windows.Common-Controls' version='6.0.0.0'processorArchitecture='x86' publicKeyToken='6595b64144ccf1df'language='*'\"")

#elif defined_M_X64

#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls'version='6.0.0.0' processorArchitecture='amd64'publicKeyToken='6595b64144ccf1df' language='*'\"")

#else

#pragma comment(linker,"/manifestdependency:\"type='win32'name='Microsoft.Windows.Common-Controls' version='6.0.0.0'processorArchitecture='*' publicKeyToken='6595b64144ccf1df'language='*'\"")

#endif

#import "c:\program files\commonfiles\system\ado\msado15.dll" \

no_namespace \

rename("EOF","adoEOF")      

//using namespace ADODB;

Visual Studio 2013 VC++ 数据库的简单使用Visual Studio 2013 VC++ 数据库的简单使用

PS:如果stdafx.h加载出错,解决办法http://blog.****.net/lphbtm/article/details/50730807

3.切换到managetest.cpp中的BOOL CADOdataApp::InitInstance()函数中添加一下代码,用以初始化COM。

if(!AfxOleInit())
    {
        AfxMessageBox(_T("OLE初始化出错!"));
        return FALSE;
    }
Visual Studio 2013 VC++ 数据库的简单使用Visual Studio 2013 VC++ 数据库的简单使用

4.在CADOdataDlg.h定义两个指针

    _ConnectionPtrm_pConnection;//ConnectionPtr用于打关闭个库连接或用Execute方法来执行一不返回果的命令

    _RecordsetPtrm_pRecordset;//_RecordsetPtr智能指,可以用开库内数据表,可以记录、字段等行各

Visual Studio 2013 VC++ 数据库的简单使用Visual Studio 2013 VC++ 数据库的简单使用

5添加按键事件函数

 CString csSQLstr; 
    CString bookid;
    CString bookname;
     csSQLstr ="SELECT * FROM test";//test 为步骤一种数据库新建的表名。
   try                
    { 
       m_pConnection.CreateInstance(__uuidof(Connection));//创建ADO连接
       m_pConnection->Open("Provider=Microsoft.ACE.OLEDB.12.0; DataSource= ADOdata.accdb","","",adModeUnknown);   
        //将数据库文件放在与代码文件相同的目录下,data source的赋值即可写成上面语句中的形式,ADOdata.accdb是文件名字,文件路径参考后面数据库文件添加介绍

       //具体provider与 data source的值可参考http://blog.****.net/u012388338/article/details/39393105
    }
    catch(_com_error e)
    {
        AfxMessageBox(_T("数据库连接失败,确认数据库db.mdb是否在当前路径下!"));
        return;
    }
    m_pRecordset.CreateInstance(__uuidof(Recordset));
    try
    {
       m_pRecordset->Open((_bstr_t)csSQLstr,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);

        //打开一个记录集(test表),通过这个记录我们可以进行查询,插入,删除等操作。

    }
    catch(_com_error *e)
    {
        AfxMessageBox(e->ErrorMessage());
    }
    bookid=m_pRecordset->GetCollect("BookID");

       //得到test表中BookID的第一个值,这是由于打开数据集后,指针在这个记录集的开头,

        //可以通过movefist,movelast,movenext操作移动指针位置,getcollect可以读取记录集中的信息。
    bookname = m_pRecordset->GetCollect("BookName");
    SetDlgItemText(IDC_BookID,bookid); //将得到的信息显示在文本框中
    SetDlgItemText(IDC_BookName,bookname); 
    m_pRecordset->Close();//关闭记录集
    m_pRecordset = NULL;
    m_pConnection->Close();//断开数据库连接
    m_pConnection= NULL;

6.然后创建好的数据文件放到和编程文件同目录

Visual Studio 2013 VC++ 数据库的简单使用Visual Studio 2013 VC++ 数据库的简单使用

7.连接到数据库

Visual Studio 2013 VC++ 数据库的简单使用

Visual Studio 2013 VC++ 数据库的简单使用Visual Studio 2013 VC++ 数据库的简单使用

Visual Studio 2013 VC++ 数据库的简单使用

点击连接测试

Visual Studio 2013 VC++ 数据库的简单使用

点击高级可以看到文件DataSorce和Provider的路径

Visual Studio 2013 VC++ 数据库的简单使用Visual Studio 2013 VC++ 数据库的简单使用

然后点击确定,再点击服务管理器中选项会看到数据内容

Visual Studio 2013 VC++ 数据库的简单使用

 Visual Studio 2013 VC++ 数据库的简单使用

最后运行程序效果图

Visual Studio 2013 VC++ 数据库的简单使用Visual Studio 2013 VC++ 数据库的简单使用