这个问题是跟数据库的表相关的,你可以注意一下,在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绑定,所以是不可编辑的。
这样做修改,添加,删除都方便了, 最后只要ApplyUpdate.
但是,dbgrid中不显示ID, 添加记录时, ID需用代码生成.问题出来了, 当表中没有记录时. dbgrid自动产生1行,且可编辑, 没有设置为添加时, ID没能得到. 程序会出问题.不知你的问题是不是和我一样.后来只好用代码控制 dbGrid 的可编辑状态了.
dbgrid1.options := dbgrid1.options+[dgEditing] --- 可编辑
dbgrid1.options := dbgrid1.options+[dgEditing] --- 不可编辑
可以按照下边的方法处理:
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绑定,所以是不可编辑的。