我想请问一下用ADO连接的数据库怎样把一个数据表中指定字段的所有数据或用TADOQuery查询到的数据插入到TListBox 和下拉列表框中啊!还有就是怎样获得TListBox中当前选中的数据?并且把showmessage出来!

解决方案 »

  1.   

    with ADOQuery do
     begin
      close;
      SQl.clear;
      SQL.Add('select 指定的字段  from  数据库表');
      open;
     enn; for count :=1 to ADOQuery.recordset.count do
      begin
       listbox.items.add(ADOQuery.recordset.fields(指定字段).asstring);
      end; //获得listBox1当前数据
      var
      Str:string;Str:=  listbox1.Items.string[listbox1.ItemIndex-1 ];showmessage(str);
      

  2.   

    我顺便考了一段代码,你自已整理一下,就OK选定义一个记录类型,用于保存ID和Nametype
      TData = record
      DataID:integer;
      end;
     
    //填充供应商下拉列表框
         close;
         sql.Clear;
         sql.Add('select * from 供应商');
         open;
         while not eof do
         begin
           GYSData.DataID:=FieldByName('编号').AsInteger;
           GYSName:=FieldByName('供应商名称').AsString;
           CBGYS.Items.AddObject(GYSName,TObject(GYSData));
           Next;
         end;
         CBGYS.Items.Add('');//插入一空记录
      

  3.   


    with adoquery1 do
    begin
      first;
      while not eof do
      begin
        listbox1.add(FieldByName('fieldname').asstring);
        next;
      end;
    end2  showmessage(listbox1.Items[listbox1.itemindex]);
      

  4.   

    1:
    with ADOQuery do
     begin
      close;
      SQl.clear;
      SQL.Add('select 指定的字段  from  数据库表');
      open;
     enn; for count :=1 to ADOQuery.recordcount do
      begin
       listbox.items.add(ADOQuery.fieldbyname('字段名').asstring);
      end; 2:
     
    var
    Str:string;
    begin
    Str:=listbox1.Items.string[listbox1.itemindex];
    showmessage(str);
    ...
      

  5.   

    for count :=1 to ADOQuery.recordcount do
      begin
       listbox.items.add(ADOQuery.fieldbyname('字段名').asstring);
      end; 
     改为:
    adoquery.first;
    for count :=ADOQuery.recordcount downto 1 do
     begin
       listbox.items.add(ADOQuery.fieldbyname('字段名').asstring);
       adoquery.next;  
     end;