我用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】,照理說有六條記錄,應該會報錯。可是他也不報錯。我感覺是記錄集沒有往下走,導致里面只有一個數值,因此顯示選中項的數值了。請問如何解決?
uj5u.com熱心網友回復:
沒有人幫忙么,給一點建議也好呀uj5u.com熱心網友回復:
這個你自己Debug模式下單步執行一下,看看資料是否正確?uj5u.com熱心網友回復:
按描述 應該是每條記錄都有一個總和(N個欄位的), 而程式上則是N條記錄的某個欄位的和uj5u.com熱心網友回復:
單步除錯了,我去掉了while回圈,在m_pSet->MoveNext()陳述句后直接加上b=m_pSet->m_Value;然后輸出b的值,發現還是原來第一條記錄中的該欄位值,就是說記錄集并沒有下滾。(此時的m_Value值還是沒有執行m_pSet->MoveNext()之前的值。不知道問題出在哪里。
uj5u.com熱心網友回復:
我要的就是N條記錄某個欄位(Value欄位值)的和呀。轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/142543.html
標籤:數據庫
上一篇:怎么將ProEssentials7插入到VS2010中去
下一篇:新人求助!
