有这么一段代码
for(i=0;i<iGetFieldCount;i++)
{
DataSet.GetFieldValue("NetBarName",strField);
//strReturn=strReturn+"<"+strField+">";
}提示错误:
无效的描述符索引

解决方案 »

  1.   

    DataSet.GetFieldValue("NetBarName",strField);有问题,
      

  2.   

    这个函数的参数有几种情况,strField是什么类型
      

  3.   

    完整的代码如下:
    CString strField;
    for(i=0;i<iGetFieldCount;i++)
    {
    DataSet.GetFieldValue(i,strField);
    strReturn=strReturn+"<"+strField+">";
    }
      

  4.   

    DataSet.GetFieldValue(i,strField);有问题
    你接受字段值的变量strField类型为CString,如果你的字段有其他类型的,在赋值的时候肯定会出错
      

  5.   

    楼上恐怕只是猜测而已吧,GetFieldValue()有几种形式。
     这种形式的优点就是不论字段是什么类型,都会把结果以字符串的形式存到strFiled中。
     能否再多帖一些代码呢?
     你的读出来的记录只有一条记录吗?
     
      

  6.   

    完整代码如下:
    int iSuccessSend;
    CDataTable DataSet;
    DataSet.Open(CRecordset::dynaset,m_query);
    if(DataSet.GetRecordCount()!=0)
    {
    DataSet.MoveFirst();
    }
    else
    {
    return 2;
    }
    int iGetFieldCount,i;
    CString strField,strReturn;
    iGetFieldCount=DataSet.GetODBCFieldCount();
    while(!DataSet.IsEOF())
    {
    for(i=0;i<iGetFieldCount;i++)
    {
    DataSet.GetFieldValue((int)i+1,strField);
    strReturn=strReturn+"<"+strField+">";
    }
    //iSuccessSend=SendSmsData(StructReadSms.SMNumber,strReturn);
    if(iSuccessSend==0)
    {
    //·&cent;&Euml;&Iacute;&sup3;&Eacute;&sup1;&brvbar;
    getSendWrongInformation(StructReadSms,strResult,"00");
    return 0;
    }
    else
    {
    //·&cent;&Euml;&Iacute;&Ecirc;§°&Uuml;
    getSendWrongInformation(StructReadSms,strResult,"99");
    return -1;
    }
    DataSet.MoveNext();
    }