试试
_variant_t TheValue;
TheValue = m_pRateSet->Fields->GetItem("平均值")->Value;

解决方案 »

  1.   

    long value=(long)TheValue;
    可在转为常用数据类型时还是出错,怎么办?谢谢赐教
      

  2.   

    int value=(int)TheValue;是否正常呢??
      

  3.   

    不行,编译时会报错误,如果是long float double不会报错,_variant_t不能转换为int型
      

  4.   

    _variant_t 新转化为CString :
    m_str=(char*)_bstr_t(m_var);
    再用atoi()或atof()转化为int或float型
      

  5.   

    CString m_str;
    m_str=(char*)_bstr_t(TheValue);
    还是在这一句是出错我现在搞不清倒底能转换成什么数据类型,是不是由
    SQL语句中的 AVG 间接引起的?
      

  6.   

    _variant_t vtFld;vtFld = m_pRecordset->Fields->GetItem(("平均值")->Value;
    int value=vtFld.ival;
      

  7.   

    加上判断如
    _variant_t var = m_pRateSet->Fields->GetItem("平均值")->Value;
    long lVal =0;
    if (var.vt != VT_EMPTY && var.vt != VT_NULL)
        lVal = (long)var;
      

  8.   

    你可以试一下
    long value = m_pRateSet->GetCollect("平均值");把你原来的(long)删了!试试,可以嘛?
    我就是这样搞掂的!不知你怎么样!虽然是没有分的,不过希望可以交流一下!