procedure TForm_book.BitBtn9Click(Sender: TObject);
var
  fi:string;
begin
   fi:=DBgrid1.Fields['户号'].AsString;
   query3.Close;
   query3.SQL.Clear;
   query3.SQL.Add('select * from persion where persion.户号='+''''+fi+'''');
   query3.Open;
end;
出现了以下错误
error:incompatible types:'integer' and 'string'

解决方案 »

  1.   

    补充:DBgrid1连family,DBgrid2连persion
    错在这一句:fi:=DBgrid1.Fields['户号'].AsString;
      

  2.   

    可能是你的户号是Integer类型,这样试下:
    Fi:=IntToStr(DBGrid1.Fields['户号'].asInteger);
      

  3.   

    fi:=DBgrid1.Fields[0].AsString//这里写FieldIndex的,怎么写成了FieldName
      

  4.   

    fi:=DBgrid1.Fields[这里写数字,“户号”这个字段的Index].AsString
      

  5.   

    query3.SQL.Add('select * from persion where persion.户号='+fi);行不?
      

  6.   

    请问dulei115(),户号的Index是多少啊?
      

  7.   

    呵呵!你的表中的 户号的Index是多少 我怎么知道?双击DBGrid1,弹出对话框,如果为空,点击第三个按钮“Add All Fields”,你看 户名 前的那个数字就是了。楼主改一下吧,设DBGrid1连的是Table1,改为
    fi:=Table1.FieldByName('户号').AsString;或者fi:=DBGrid1.DataSource.DataSet.FieldByName('户号').AsString;
      

  8.   

    fi:=VarToStr(DBGrid1.DataSource.DataSet['户号']);