大家好 我在运行 RadioGroup3.ItemIndex:=fieldbyname('ONE_ONE').AsInteger;时出错错误信息是 Projiect Client.exe raised exception class EConvertError with message ''' is not a valid integer value'. Process stopped. Use Step or Run to continue.

解决方案 »

  1.   

    fieldbyname('ONE_ONE').AsInteger 前有没有 with ado do 之类的?请确保这个列有没有空值,或越界了
      

  2.   

    'ONE_ONE'字段的值,不符合integer格式,转换错误
      

  3.   

    fieldbyname('ONE_ONE').AsInteger你的one_one字段类型是什么,如果是字符串,改一下
    RadioGroup3.ItemIndex:=StrToInt(fieldbyname('ONE_ONE').AsString);
      

  4.   

    问题是现在fieldbyname('ONE_ONE').出来的方法有AsInteger啊 没有.AsString啊
      

  5.   


    'ONE_ONE'可能不是整数型数据,需要更改一下
      

  6.   

    这个字段内容为空,转换成int出错
    用select ..., isnull(ONE_ONE, 0) as ONE_ONE from ...
    这种形式好了
      

  7.   

    代码是
    with adoquery1 do    begin
          close;
          sql.text := 'select * from DCB_DCWJ';
          Open;
          edit1.Text:=fieldbyname('MINGCHENG').AsString;
          edit2.Text:=fieldbyname('BUMEN').AsString;
          edit3.Text:=fieldbyname('TIANXIEREN').AsString;
          edit4.Text:=fieldbyname('QITALIANXI').AsString;
          edit5.Text:=fieldbyname('DIANHUA').AsString;      RadioGroup3.ItemIndex:=fieldbyname('ONE_ONE').AsInteger;
          RadioGroup4.ItemIndex:=fieldbyname('ONE_TWO').AsInteger;
          RadioGroup5.ItemIndex:=fieldbyname('ONE_THREE').AsInteger;
          RadioGroup1.ItemIndex:=fieldbyname('TWO').AsInteger;
          RadioGroup20.ItemIndex:=fieldbyname('THREE_ONE').AsInteger;
          RadioGroup21.ItemIndex:=fieldbyname('THREE_TWO').AsInteger;
          RadioGroup2.ItemIndex:=fieldbyname('FOUR').AsInteger;
          RadioGroup6.ItemIndex:=fieldbyname('FIVE').AsInteger;
          Memo5.Lines.Text :=fieldbyname('FIVE_REASON').AsString;
          Memo7.Lines.Text :=fieldbyname('SIX').AsString;      Edit6.Text:=fieldbyname('ONE_JSFW').AsString;
          RadioGroup7.ItemIndex:=fieldbyname('TWO_JSFW').AsInteger;
          RadioGroup8.ItemIndex:=fieldbyname('THREE_JSFW').AsInteger;
          RadioGroup32.ItemIndex:=fieldbyname('FOUR_JSFW').AsInteger;
          RadioGroup9.ItemIndex:=fieldbyname('FIVE_JSFW').AsInteger;
          RadioGroup10.ItemIndex:=fieldbyname('SIX_JSFW').AsInteger;
          RadioGroup11.ItemIndex:=fieldbyname('SEVEN_JSFW').AsInteger;
          RadioGroup12.ItemIndex:=fieldbyname('EIGHT_JSFW').AsInteger;
          RadioGroup14.ItemIndex:=fieldbyname('NINE_ONE_JSFW').AsInteger;
          Memo6.Lines.Text:=fieldbyname('NINE_TWO_JSFW').AsString;
          Memo1.Lines.Text:=fieldbyname('TEN_JSFW').AsString;
          RadioGroup33.ItemIndex:=fieldbyname('ELEVEN_QIJI_JSFW').AsInteger;
          RadioGroup34.ItemIndex:=fieldbyname('ELEVEN_GUOLU_JSFW').AsInteger;
          RadioGroup35.ItemIndex:=fieldbyname('ELEVEN_REGONG_JSFW').AsInteger;
          RadioGroup36.ItemIndex:=fieldbyname('ELEVEN_XITONG_JSFW').AsInteger;
          RadioGroup37.ItemIndex:=fieldbyname('ELEVEN_GAOYA_JSFW').AsInteger;
          RadioGroup38.ItemIndex:=fieldbyname('ELEVEN_JIKNSHU_JSFW').AsInteger;
          RadioGroup39.ItemIndex:=fieldbyname('ELEVEN_HUANHUA_JSFW').AsInteger;
          RadioGroup40.ItemIndex:=fieldbyname('ELEVEN_JILIANG_JSFW').AsInteger;
          RadioGroup41.ItemIndex:=fieldbyname('ELEVEN_QINGBAO_JSFW').AsInteger;
          RadioGroup43.ItemIndex:=fieldbyname('ELEVEN_JIANXIU_JSFW').AsInteger;
          Memo2.Lines.Text:=fieldbyname('ELEVEN_GOODREASON_JSFW').AsString;
          Memo3.Lines.Text:=fieldbyname('ELEVEN_BADREASON_JSFW').AsString;
          Memo4.Lines.Text:=fieldbyname('TWELVE_JSFW').AsString;
          end;  end;
      

  8.   

    只要是.AsInteger的都报错啊
      

  9.   


    不用想了,字段类型,或字段内容问题,假如你的字段值是'a',那么asinteger能不报错吗
      

  10.   

    ONE_ONE 在数据库里设计的是 varchar2类型
      

  11.   

    ONE_ONE 这个列有问题,确保都是数字
      

  12.   


    兄弟你搞清楚: RadioGroup3.ItemIndex  這是接受整型的,後後面肯定出 AsInteger, value  這二個啦,  但你後面的值是不是整型你要自己判斷啊 fieldbyname('ONE_ONE').AsInteger    這裏出來字符,你強轉換肯定出錯啊
      

  13.   

    11楼的回答 RadioGroup3.ItemIndex取出来的值是Integer的 不可能是String啊
      

  14.   

    StrtoInt(trim(fieldbyname('TWO_JSFW').AsString))
      

  15.   

    那左边是Integer  右边 . 出来的方法也只有Integer 没有String啊  说明两边的数据类型是一样的呀
      

  16.   

    16楼 我表中的值 是3  Integer类型啊
      

  17.   

    先用showmessage()方法show一下,showmessage('ONE_ONE的值為='+IntToStr(fieldbyname('ONE_ONE').AsInteger))看下有沒值。
    如果沒有值,那就是資料集的問題。有值就是轉換的問題啦。
      

  18.   


    小夥子你確定是3,那怎麼報是空??ShowMessage(fieldbyname('ONE_ONE').AsString) ??   
      

  19.   

    RadioGroup35.ItemIndex:=StrtoInt(trim(fieldbyname('TWO_JSFW').AsString));
      

  20.   

    好好检查字段吧,没有别的原因呀,RadioGroup3.ItemIndex当然要求是integer,但是你从数据库中就不是了,能不报错吗
      

  21.   


     class EConvertError with message ''' is not a valid integer value'. 就是告訴你有空值
      

  22.   

    你可以在 fieldbyname('xx').isNull  默認一個值給  ItemIndex