下面这段代码我实在不知道有什么问题,但运行起来达不到预期效果。
if not MainForm.ADOQuery10.Eof then
 begin
  ComboBox1.Items.Add(MainForm.ADOQuery10.fieldbyname('指导教师').Value);
  MainForm.ADOQuery10.Next;
 end;
确定数据库表没有问题,但ComboBox1里面总只能加入一个项,就是数据库表的第一个记录,为什么?请教。

解决方案 »

  1.   

    你的表里有几条记录啊。。~~
    再就是。。你的ADOQuery10的SELECT语句执行后,,是否只有一条满足条件的记录呢?。。
      

  2.   

    当然只会有第一个纪录,你的代码又没有循环!
    with MainForm.ADOQuery10 do  
    begin
      first;
      while not Eof do
      begin
        ComboBox1.Items.Add(fieldbyname('指导教师').Value);
        Next;
      end;
    end;
      

  3.   

    楼上说的对,你的代码只执行了一次,所以才会只有一个记录,也可改写如下:
    with MainForm.ADOQuery10 do  
    var
      i: Integer;
    begin
      for i := 0 to RecordCount - 1 do
      begin
        ComboBox1.Items.Add(fieldbyname('指导教师').AsString);
        Next;
      end;
    end;
      

  4.   

    下面这段代码我实在不知道有什么问题,但运行起来达不到预期效果。if not MainForm.ADOQuery10.Eof then ////把if改为while就可以了因为if是不能循环的。 begin
      ComboBox1.Items.Add(MainForm.ADOQuery10.fieldbyname('指导教师').Value);
      MainForm.ADOQuery10.Next;
     end;
    确定数据库表没有问题,但ComboBox1里面总只能加入一个项,就是数据库表的第一个记录,为什么?请教。