我用VC连接了一个数据库,里面有一个字段是Value,有6个字段值,为10,20,30,40,50,60. 域数据成员名是m_Value
这个数据库类为CSectionSet,我在里面定义了一个指针CSectionSet* m_pSet;
然后我就想获得这六个字段值的总和,显示在编辑框里。编辑框ID为IDC_SUM。
应该如何编写代码呢?
我写了如下代码,用一个按钮控制显示:
void CSectionForm::OnAvrcul() 
{

if(m_pSet->IsOpen()){
m_pSet->Close();
}
m_pSet->Open();
long a[10];
int i=0;
long b=0;
m_pSet->MoveFirst();
while(!m_pSet->IsEOF())
{
      
          a[i]=m_pSet->m_Value;
  b+=a[i];
  m_pSet->MoveNext();
  i++;
}
CString c;
c.Format("%d",b);
SetDlgItemText(IDC_SUM,c);
}
发现显示出来的是当前选中项的数值,而不是总和。我把a【10】改成了a【2】,照理说有六条记录,应该会报错。可是他也不报错。我感觉是记录集没有往下走,导致里面只有一个数值,因此显示选中项的数值了。请问如何解决?

解决方案 »

  1.   

    这个你自己Debug模式下单步执行一下,看看数据是否正确?
      

  2.   

    单步调试了,我去掉了while循环,在m_pSet->MoveNext()语句后直接加上b=m_pSet->m_Value;然后输出b的值,发现还是原来第一条记录中的该字段值,就是说记录集并没有下滚。(此时的m_Value值还是没有执行m_pSet->MoveNext()之前的值。不知道问题出在哪里。
      

  3.   

    我要的就是N条记录某个字段(Value字段值)的和呀。