Home  >  Article  >  Database  >  VC/MFC中的ACCESS数据库访问实现

VC/MFC中的ACCESS数据库访问实现

WBOY
WBOYOriginal
2016-06-07 15:36:221398browse

前些天弄一个 访问 ACCESS 数据库 的小东西,费了些力气才弄好。 虽然还有些不尽人意,但是终究还是可以用了, 在这里分享一下自己的 实现 方法和经验。 里面的东西网上都有,但是,这里的是最全的。 VC/MFC 访问 ACCESS 数据库 方法1 : 1 创建一个基于对话

前些天弄一个访问ACCESS数据库的小东西,费了些力气才弄好。

虽然还有些不尽人意,但是终究还是可以用了,

在这里分享一下自己的实现方法和经验。

里面的东西网上都有,但是,这里的是最全的。

VC/MFC访问ACCESS数据库

方法1

1  创建一个基于对话框的应用程序。

    放入两个ActiveX 控件 Microsoft ADO Data Control,version 6.0 ... 和 Microsoft DataGrid Control,Version 6.0 如果没有两个空间的话,请安装OFFICE组件。

 

2 为控件设置属性。

    1) 为ADO Data Control 设置属性:Control -> Use Connection String -> Build

        在弹出的对话框中选择 Microsoft Jet 4.0 OLE DB Provider -> 下一步 -> 在"选择或输入数据库名称"处,选择所创建的数据库文件,例如:d:/test_db/testdb.mdb。密码处默认为空,如果用户表有密码的话,输入密码,并选中"允许保存密码" -> 单击"测试连接" 如弹出"测试连接成功" 表示数据文件已经可已使用。直接确定,回到为对话框资源编辑界面。

       为这一控件的:RecordSource 选项设置属性如下:

       Command Type 选择 1 -adCmdText

       Command Text(SQL) 中 输入SQL语句 : select * from mydb;

       ADO Data Control 控件的属性就设置完成了。关闭属性设置界面。

    2) 为DataGrid Control设置属性。

       DataSource 列表中选择:IDC_ADODC1

       关闭属性设置界面。

编译,运行。如果数据库中有数据的话,就会在DataGrid中显示出来了。

想进行其他的数据库操作的话,如下例:

       接着上面的程序步骤,

       为ADO Data Control 添加一个变量:m_adoDC;

       为Data Grid 添加一个变量:m_adoDG;

       一个按钮,双击为按钮增加函数。在函数中增加下面的代码:

       CString strTem = "select * from mydb where SUserName '张三'";

       //VC 6.0

       m_adoDC.SetRecordResource(strTem);

       m_adoDC.Refresh();

       //VS 2005/VS 2008

       m_adoDC.put_RecordSource(strTem);

       m_adoDC.Refresh();

 

编译运行,效果就出来了。

PS:这种方式下,查询的效果很好,但是,进行INSERT , UPDATE , DELETE 操作的时候会出现一些错误提示:

       //VC 6.0 中

       对象已关闭,无法进行操作。

       //VS 中

       Windows has triggered a breakpoint in ...

虽然有提示,但是数据库的操作是成功的。就这个问题查遍了网络,没有人能给出解决方案,同样,我并不比他们强。

第一种方案到此结束。

 

      

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:SQLite数据库Next article:虚拟MMU---客户机页表遍历