VC/MFC中的ACCESS数据库访问实现
2013-01-31 18:00
281 查看
转自:http://blog.csdn.net/mrdone/article/details/4868741
前些天弄一个访问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 ...
虽然有提示,但是数据库的操作是成功的。就这个问题查遍了网络,没有人能给出解决方案,同样,我并不比他们强。
第一种方案到此结束。
前些天弄一个访问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 ...
虽然有提示,但是数据库的操作是成功的。就这个问题查遍了网络,没有人能给出解决方案,同样,我并不比他们强。
第一种方案到此结束。
相关文章推荐
- VC/MFC中的ACCESS数据库访问实现(方法2)
- VC/MFC中的ACCESS数据库访问实现(方法3)
- VC/MFC中的ACCESS数据库访问实现
- 在MFC里面使用ADO访问微软的ACCESS数据库 实现增删改查
- 在MFC里面使用ADO访问微软的ACCESS数据库 实现增删改查
- 如何实现 VC中访问Access数据库的方法(不建立ODBC数据源)
- VC++MFC下实现SOAP服务端和SOAP客户端
- VC++(MFC)实现SQL Server的远程连接(ADO实现)
- VC下用MFC类实现网络编程
- vc实现对远程SQL Server数据库的访问
- [VC/MFC ] VC++实现拨号上网程序详解
- VC(MFC) edit控件滚动条自动到达底部的几种实现
- ADO实现Access数据库表的遍历和字段的遍历(VC版)
- VC++下使用ADO访问Access数据库完整篇
- 在java中实现access数据库的远程访问
- VC实现打开BMP JPG或GIF图片(二)|VC/MFC/打开图片
- VC中使用ADO访问数据库技术程序实现方法
- VC ++实现 对文件的 隐藏, 只读 ,创建时间 , 最后修改时间 ,最后访问时间 属性的修改
- MFC VC 双缓冲绘图基本原理与实现,详细解释
- VC----MFC对话框(3)【“逃跑”按钮的实现】