我想取SQL数据库中一个表的‘no’字段的最后一个值放入edit1中,但是程序运行后,却取不到值,edit1依旧为空,没有任何的东西,主要的代码如下:
  begin
  with adoquery1 do
  begin
  last;
  edit1.text:=fieldbyname('no').asstring;
  end;
end;
本人百思不得其解,请那一位大哥帮一帮手,在线等待;急!!!

解决方案 »

  1.   

    adoquery1 的recordcount不会为0吧?
      

  2.   

    你的adoquery1连接了什么控件?
    如果连接了ADOConnection1,要把ADOConnection1的Connected高为True.
      

  3.   

    begin
      with adoquery1 do
      begin
      last;
      edit1.text:=fieldbyname('no').asstring;
      end;
    end;
    这段代码外有try语句没有?如果有的话,最好判断下adoquery1.eof、adoquery1.isempty
      

  4.   

    no 是 int类型吧,这样试试, 
    edit1.text:=fieldbyname('no').value;
      

  5.   

    begin
      with adoquery1 do
      begin
      last;
      PORIOR;
      edit1.text:=fieldbyname('no').asstring;
      end;
    end;这样试试看.
      

  6.   

    我现在改了一种方式来取值,是‘啸风’给了我一个提醒,我直接取recordcount的值放入edit1中,虽则麻烦一点,但是却解决了我目前的问题,全部的代码如下:
    procedure Tmainpagefrm.Edit1Click(Sender: TObject);
    var
    a:string;
    i:integer;
    begin
    mindatamodule.adoqrycustlist.Open;
    i:=mindatamodule.adolog.RecordCount+1;
    a:=inttostr(i);
    edit1.Text:=a;
    mindatamodule.adoqrycustlist.Close;
    end;
    end.
    在此谢谢大家的回复,
      

  7.   

    不用这么麻烦吧,加一个判断就行
     with adoquery1 do
      begin
      if recordcount>0 then
        begin
          last;
          edit1.text:=fieldbyname('no').asstring;
        end;
      end;