如题~~~~请各位帮忙!!!答对有分!

解决方案 »

  1.   

    if ADODATASET的记录总数=O then ADODATASET.Close
      

  2.   

    dabo1977: close之后还是有空行显示的。wilowind:  能说一下你是怎样变通的吗?
      

  3.   

    我想到这个问题是因为:dbgrid对应的数据集用Clientdataset,只对应数据库中一个表. dbgrid可编辑,且自动写入clientdataset.
    这样做修改,添加,删除都方便了, 最后只要ApplyUpdate. 
    但是,dbgrid中不显示ID, 添加记录时, ID需用代码生成.问题出来了, 当表中没有记录时. dbgrid自动产生1行,且可编辑, 没有设置为添加时, ID没能得到. 程序会出问题.不知你的问题是不是和我一样.后来只好用代码控制 dbGrid 的可编辑状态了. 
    dbgrid1.options := dbgrid1.options+[dgEditing] --- 可编辑
    dbgrid1.options := dbgrid1.options+[dgEditing] --- 不可编辑
      

  4.   

    这个问题是跟数据库的表相关的,你可以注意一下,在SQL Server中打开一张没有记录的表时,他也是会出现一个空行,所以DGRrid在与一个DataSet相连的时候同样会出现一个空行。
    可以按照下边的方法处理:
      if AdoQuery1.RecordCount>0 then DataSource1.DataSet:=AdoQuery1
      else
       begin
         DBGrid1.Columns.Add;
         DBGrid1.Columns.Items[0].Title.Caption:='用户名';
         DBGrid1.Columns.Add;
         DBGrid1.Columns.Items[1].Title.Caption:='密码';
       end;
    这样子做空行不能消失,但DGRrid未与DataSource绑定,所以是不可编辑的。