没效果怎么回事啊?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

长风秋雁
TA贡献1757条经验 获得超7个赞
m_display=data.m_data
改成memcpy(&m_display, &(data.m_data),sizeof(m_display));
- 2 回答
- 0 关注
- 187 浏览
添加回答
举报
0/150
提交
取消