环境:VC6.0 +ADODC+DataGrid,ADODC用动态绑定
如果光标在下一次更新数据源和Refrseh()之前落在单元格中,则更新数据源和Refrseh()之后第一行第一例的单元格的内容被更换为Refrseh()之前所在的单元格的内容,以下两个函数是用菜单进行切换数据源的函数,请高手指定
void CDataView::OnMENUITEMphhzTable() 
{
// TODO: Add your command handler code here
strsql="select * from 批号汇总";
m_ctlAdodc1.SetRecordSource(strsql);
m_ctlAdodc1.SetCaption("医保审扣系统----批号汇总");
m_ctlAdodc1.Refresh();
}void CDataView::OnMENUITEMksTable() 
{
// TODO: Add your command handler code here
strsql="select * from 科室";
m_ctlAdodc1.SetRecordSource(strsql);
m_ctlAdodc1.SetCaption("医保审扣系统----科室设置");
m_ctlAdodc1.Refresh();

}

解决方案 »

  1.   

    是我处理的方式有问题,还是DataGrid的一个BUG,我用类似的方式处理RDC+DBGrid就没有这个现象,像是跟缓冲有关,大家有想法就发表一下高见,随便说说
      

  2.   

    自己搞定,在改变数据源前让其它控件获得焦点即可,加一名GetDlgItem(IDC_STATIC_mysql)->SetFocus();
    void CDataView::OnMENUITEMksTable() 
    {
    // TODO: Add your command handler code here
    GetDlgItem(IDC_STATIC_mysql)->SetFocus();
             strsql="select * from 科室";
    m_ctlAdodc1.SetRecordSource(strsql);
    m_ctlAdodc1.SetCaption("医保审扣系统----科室设置");
    m_ctlAdodc1.Refresh();

    }
      

  3.   

    ADODC+DataGrid在win2000或winxp下只要两个控件注册后均没有问题,但在win98下显示:
    don't initialize data binding,是什么原因(控件也已注册),答对送分了
      

  4.   

    donot initialize data binding消息提示出自MSDATGRD.OCX,(MSDATGRD.OCX和MSADODC.OCX早已注册),原因是msstdfmt.dll没注册,在命令窗口下运行regsvr32 msstdfmt.dll即可,结贴了,送shenqinggangwan(深情港湾) 50分