为了账号安全,请及时绑定邮箱和手机立即绑定

想在OnTimer()函数中逐条读取ACCESS中的data数据并在编辑框中显示,​但是却没效果?

想在OnTimer()函数中逐条读取ACCESS中的data数据并在编辑框中显示,​但是却没效果?

慕雪6442864 2022-06-16 11:11:25
没效果怎么回事啊?void CScopeTestDlg::OnTimer(UINT nIDEvent){str="select * from USBData";data.Open(CData::dynaset,_T(str));m_display=data.m_data;//想将数据库中m_data显示到控件m_displayUpdateData(false);data.MoveNext();data.Close();CDialog::OnTimer(nIDEvent);}控件数据不变化啊,把m_display=data.m_data用m_display=a++代替(a我设置的全局变量),空间的数值就会自动增加显示。怎么修改程序啊?
查看完整描述

2 回答

?
守着一只汪

TA贡献1872条经验 获得超4个赞

你这个OnTimer是正常工作了,不过你的 程序逻辑有问题
把 str="select * from USBData";
data.Open(CData::dynaset,_T(str));
这两句放在函数外面,比如程序的初始化函数里面!。
你现在的问题是,每次调用OnTimer都是重新连接的数据库,然后都是显示的第一条数据,当然控件是不可能变化的了,
你改成这样
void CScopeTestDlg::OnTimer(UINT nIDEvent)
{
while(....)//如果没有到达表的最后一条
m_display = data.m_data;
data.MoveNext();

}
在结束OnTimer函数时,才使用data.Close()关闭连接!
回答OK

查看完整回答
反对 回复 2022-06-20
?
长风秋雁

TA贡献1757条经验 获得超7个赞

m_display=data.m_data
改成memcpy(&m_display, &(data.m_data),sizeof(m_display));

查看完整回答
反对 回复 2022-06-20
  • 2 回答
  • 0 关注
  • 187 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号