代码:
procedure TSearchForm.DBGrid1DblClick(Sender: TObject);
var
  i,j,tID:integer;
begin
  i:=DBGrid1.SelectedRows.Count;
  tID:=DBGrid1.Fields[i].AsInteger; 
  if Length(IntToStr(tID))<>0 then
  begin
  With ADOQuery1 do
  begin //3
  Close;
  SQL.Clear;
  SQL.Add('select * from Man_AeonCarInfo where Carinfo_Id=:pID');
  Parameters.ParamByName('pID').Value:=tID;
  Open;
  if RecordCount <>0 then
  begin    
   //////显示
  end;
  end;//end of with
 end; 
end;  
DBGrid 中没有数据时就出错了,我想实现DBGrid有记录时双击在弹出窗口中显示,
没有记录时不作任何动作.

解决方案 »

  1.   

    前面加一个判断;
    DBGrid.DataSet. IsEmpty=False then
    begin
    你的代码
    end;
      

  2.   

    hsmserver(撒哈拉之雨的悲伤)  说的正确! 就是判断一下是否点击的那列里有数据就可以了
      

  3.   

    procedure TSearchForm.DBGrid1DblClick(Sender: TObject);
    var
      i,j,tID:integer;
    begin
      if DbGrid1.DataSource.Dataset.State.Active=false then Exit;
      if DbGrid1.DataSource.Dataset.RecordCount=0 then Exit;
      .....
    end;
      

  4.   

    if adoqeury1.recordcount=0 then
      exit;
    不行吗?
      

  5.   

    if query1.isempty then 
       begin
         showmessage('没有数据可以查询,请重新定义!');
         exit;
       end;