ADODataSet2 : cannot perform this operation on a closed dataset.procedure TForm2.DBGridEh1DblClick(Sender: TObject);
begin
  ADODataSet2.Active:=False;
  ADODataSet2.Parameters.ParamByName('CNo').Value:=   //说ADODataSet2关无法运行这行
    ADODataSet1.FieldByName('CNo').Value;
  ADODataSet2.Active:=True;
  ADODataSet2.Open;
  ADODataSet2.Edit;
  Form1.ShowModal;
end;

解决方案 »

  1.   

    ADODataSet2 : cannot perform this operation on a closed dataset.procedure TForm2.DBGridEh1DblClick(Sender: TObject);
    begin
      ADODataSet2.Active:=False;
      ADODataset2.Parameters.Refresh;
      ADODataSet2.Parameters.ParamByName('CNo').Value:= 'abc';  //说ADODataSet2关无法运行这行
        ADODataSet1.FieldByName('CNo').Value;
      ADODataSet2.Active:=True;
      ADODataSet2.Open;
      ADODataSet2.Edit;
      Form1.ShowModal;
    end;
      

  2.   

    ADODataSet2.Parameters.ParamByName('CNo').Value:=   //说ADODataSet2关无法运行这行
        ADODataSet1.FieldByName('CNo').Value;    这两行是同一行的,加了ADODataset2.Parameters.Refresh; 告诉我找不到'CNO'了谢谢
      

  3.   

    已经有了 ADODataSet2.Open; 啊
      

  4.   

    ADODataSet2.Parameters.ParamByName('CNo').Value:= 'abc';
    前面加上open
      

  5.   

    ADODataSet2.Parameters.ParamByName('CNo').Value:= 
         ADODataSet1.FieldByName('CNo').Value; 
        前面加上 ADODataSet2.Open;也是ADODataSet2 : cannot perform this operation on a closed dataset.并且指向ADODataSet2.Open;那行   晕....
      

  6.   

    procedure TForm2.DBGridEh1DblClick(Sender: TObject);
    begin
      adodataset1.open;
      ADODataSet2.close;
      Adodataset2.commandText:='....';
      ADODataSet2.Parameters.ParamByName('CNo').Value:=ADODataSet1.FieldByName('CNo').Value;
      ADODataSet2.Open;
      ADODataSet2.Edit;
      Form1.ShowModal;
    end;
      

  7.   

    还是不行啊,虽然老报错:ADODataSet2 : cannot perform this operation on a closed dataset.
    不过程序仍然能运行,我原来也这样;