您的位置:首页 > 数据库

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

2009-11-25 10:10 239 查看
前些天弄一个访问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 ...

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

第一种方案到此结束。

 

      
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息