对于MFC连接ACCESS数据库并在对话框中显示出来

对于MFC连接ACCESS数据库并在对话框中显示出来,第1张

cdatabase::open;

virtual

bool

open

(

lpctstr

lpszdsn,

bool

bexclusive

=

false,

bool

breadonly

=

false,

lpctstr

lpszconnect

=

“odbc”,

bool

busecursorlib

=

true

)

throw(

cdbexception,

cmemoryexception

)

参数含义:

lpszdsn指定了数据源名,在lpszconnect参数中也可包括数据源名,此时lpszdsn必需为null,若在函数中未提供数据源名且使lpszdsn为null,则会显示一个数据源对话框,用户可以在该对话框中选择一个数据源.

bexclusive说明是否独占数据源,由于目前版本的类库还不支持独占方式,故该参数的值应该是false,这说明数据源是被共享的.

breadonly若为true则对数据源的连接是只读的.

lpszconnect指定了一个连接字符串,连接字符串中可以包括数据源名、用户帐号(id)和口令等信息,字符串中的"odbc"表示要连接到一个odbc数据源上.

busecursorlib若为true,则会装载光标库,否则不装载,快照需要光标库,动态集不需要光标库.

参考代码:

#include

"afxdb.h"

cdatabase

database

cstring

sdriver

=

"microsoft

access

driver

(*.mdb)"

cstring

sdsn

cstring

sfile

=

"c://works//readdb//test.mdb"//change

path

here

//

create

odbc

connection

dinamically

sdsn.format("odbcdriver={%s}dsn=''dbq=%s",sdriver,sfile)

//

open

the

database

database.open(null,false,false,sdsn)

excel单元格显示数据库中查询内容解决方法:打开要查找的表格,选择要查找的范围,显示加深颜色。

1、选择菜单栏上面的排序和筛选,在下拉选项里选择筛选。

2、第一行的标题旁边都有个下拉小箭头,点击按钮。

3、在d出的对话框中选择相应的功能即可查询内容。

1.假设你的窗口是模态窗口

你的方法有很大问题

按下KEY,显示对话框

那么主线程就执行到子对话框中的代码

你的所谓"KEY回调函数"被阻塞

等子对话框终止后

"KEY回调函数"才恢复执行

那个时候对话框都没有了

做什么也没有效果了

在"KEY回调函数"内子对话框窗口类中的个变量还是有效的

但是子对话框中的子控件"List"已经销毁了

解决办法:

在子对话框的OnInitDialog函数中初始化你的List

而非在"KEY回调函数"中

2.如果是非模态对话框

那么"KEY回调函数"不会阻塞

你可以设置List内容

但是必须经过动态创建对话框类的实例并且调用Create创建对话框

如果这些没有做

那么仍旧是访问异常

3.DoDataExchange用于控件和某数据成员间建立一种隐射关系

不应该将它作为初始化函数使用

初始化一般数据可以使用构造函数

初始化子窗口可以使用OnInitDialog

4.关于ListCtrl

Dlg1.m_List.InsertItem(0,"行")//插入行

Dlg1.m_List.SetItemText(0,1,"列")//插入列

在SetItemText之前

请务必使用InsertColumn函数插入一列

不然你想插入的那一列根本不存在

或许也是一个访问异常的原因(我不确定会否异常,但这样做是不对的)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9950778.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存