void CCalculatorDlg::RefreshData()
{
    m_list.DeleteAllItems();
m_list.SetRedraw(FALSE);
    
CDaoDatabase db;
db.Open("try1.mdb",FALSE,FALSE,_T(""));
CtryDao *rs=new CtryDao(&db);
    rs->Open(dbOpenDynaset,"calculator");    int i = 0;
char buf[64];
while (!rs->IsEOF())
{
m_list.InsertItem(0, "s"); sprintf(buf,"%f",rs->m_ID);  m_list.SetItemText(i, 1, buf);
sprintf(buf,"%f",rs->m_result);     m_list.SetItemText(i, 2, buf);
rs->MoveNext();
}
        rs->Close();
db.Close();
    m_list.SetRedraw(TRUE);
} 为何显示出来的数据都是0.000000?
望高人指点
分数不多,海涵

解决方案 »

  1.   

    m_list.InsertItem(0, "s");
    the first parameter must increase~
      

  2.   

    int i = 0;
    char buf[64];
    while (!rs->IsEOF())
    {
    m_list.InsertItem(i, "s");//相当于插入一行,每次都要改变行号
    sprintf(buf,"%f",rs->m_ID); 
              MessageBox(buf);//显示看你得到的数据是否正确
             m_list.SetItemText(i, 1, buf);
    sprintf(buf,"%f",rs->m_result);     
             m_list.SetItemText(i, 2, buf);
    rs->MoveNext();
             i++;
    }
            rs->Close();
    db.Close();
      

  3.   

    m_ID,m_result是float型的吗???char buf[64];???
    要把float型转成char或者string才可以啊`!~!~!不然就是0.000000~!~!~
    还有m_list.InsertItem(0, "s");应该为m_list.InsertItem(i, "s");吧~!~!~!~