我用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】,照理说有六条记录,应该会报错。可是他也不报错。我感觉是记录集没有往下走,导致里面只有一个数值,因此显示选中项的数值了。请问如何解决?
这个数据库类为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】,照理说有六条记录,应该会报错。可是他也不报错。我感觉是记录集没有往下走,导致里面只有一个数值,因此显示选中项的数值了。请问如何解决?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货