{请问:如果我要把表中符合要求的记录,逐条添加到Listbox中,下面我的写法错在哪里了呢?}
var
 i:integer;
begin
  with adoquery1 do
  begin
    close;
    sql.clear;
    sql.add('select k_name from Manger where K_id=:K_id');
    parameters.paramebyname('K_id').value:=dm.dsetKoffice.paramebyname('K_id').value;
    open;
  end;
  adoquery1.first;
  for i:=0 to adoquery1.recordcount-1 do
  begin
    listbox1.items.add(adoquery1.fieldbyname('k_name').value);
    adoquery1.next;
  end;
end; 

解决方案 »

  1.   

    var 
      i:integer; 
    begin 
        with   adoquery1   do 
        begin 
            close; 
            sql.clear; 
            sql.add( 'select   k_name   from   Manger k  inner join ('select   k_name   from   Manger) s   where       k.K_id=s.K_id '); 
            open; 
        end; 
       listbox1.Clear
       adoquery1.first; 
        while not AdoQuery1.eof fo
          begin 
            listbox1.items.add(adoquery1.fieldbyname( 'k_name ').Asstring); 
            adoquery1.next; 
          end; 
    end;   
      

  2.   

    sql.add( 'select  k_name  from  Manger k  inner join ( select  k_name  from  Manger) s where       k.K_id=s.K_id   ');   
    修改
    sql.add( 'select  * from  Manger k  inner join ( select  *  from  Manger) s on k.K_id=s.K_id ');   //inner join 这里可以修改left join看你怎么样取数据了,