前些天弄一个 访问 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 ...
虽然有提示,但是数据库的操作是成功的。就这个问题查遍了网络,没有人能给出解决方案,同样,我并不比他们强。
第一种方案到此结束。