嗨,大家好!
procedure TForm1.Button3Click(Sender: TObject);
begin
  With ADOQuery1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('Select * from a ');
    Open;
    DBEdit1.DataSource := DataSource2;
    DBEdit1.DataField := '题号';
    DBEdit2.DataSource := DataSource2;
    DBEdit2.DataField := '题目';
   end;
end;procedure TForm1.Button4Click(Sender: TObject);
begin  With ADOQuery1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('Select * from S1 ');
    Open;
    DBEdit1.DataSource := DataSource1;
    DBEdit1.DataField := '题号';
    DBEdit2.DataSource := DataSource1;
    DBEdit2.DataField := '正确答案';
   end;
end;怎么我在按了Button3后在按Button4就出错呢? 

解决方案 »

  1.   

    可能次序不对  DBEdit1.DataSource := DataSource1;
      DBEdit1.DataField := '题号';
      DBEdit2.DataSource := DataSource1;
      DBEdit2.DataField := '正确答案';  With ADOQuery1 do
      begin
        Close;
        SQL.Clear;
        SQL.Add('Select * from S1 ');
        Open;
       end;
      

  2.   

    按Button3的时候连的是DataSource2,而按Button4的时候连的是DataSource1。难道这两个DataSource连的DataSet都是ADOQuery1?可能问题出在这里。
      

  3.   

    同意玉米,把Button4的连接换成ADOQuery2
      

  4.   

    这样写!
    procedure TForm1.Button3Click(Sender: TObject);
    begin
      With ADOQuery1 do
      begin
        Close;
        SQL.Clear;
        SQL.Add('Select * from a ');
        Open;
        DBEdit1.DataSource :=nil;
        DBEdit1.DataField := '题号';
        DBEdit1.DataSource := DataSource2;
        DBEdit2.DataSource := nil;
        DBEdit2.DataField := '题目';
        DBEdit2.DataSource := DataSource2;
       end;
    end;procedure TForm1.Button4Click(Sender: TObject);
    begin  With ADOQuery1 do
      begin
        Close;
        SQL.Clear;
        SQL.Add('Select * from S1 ');
        Open;
        DBEdit1.DataSource :=nil;
        DBEdit1.DataField := '题号';
        DBEdit1.DataSource := DataSource1;
        DBEdit2.DataSource := nil;
        DBEdit2.DataField := '正确答案';
        DBEdit2.DataSource := DataSource1;
       end;
    end;搞定!