delphi DBGrid里面的值如何自动更新

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi DBGrid里面的值如何自动更新相关的知识,希望对你有一定的参考价值。

我在一个窗体里面有一个添加数据的功能。窗体还有一个DBGrid显示数据。我如何才能做到这边点添加按钮后这条刚刚添加进去的数据就显示在DBGrid上面。用的是ADODataSet显示DBGrid 。 dataTable用于添加数据。请问要如何才能做到。添加功能和显示数据都正常,就是不能即时同步显示。总要关掉程序在进入程序在显示刚添加的数据。

你是用ADODataSet1组件与DBGrid关联,在“添加”按钮将数据写入数据库后,可执行ADODataSet1.Active:=false;ADODataSet1.Active:=true;此时DBGrid中的数据将会刷新。其实你不需要用dataTable来添加数据,直接用ADODataSet1也可以添加数据的 参考技术A 每次更新完数据运行下 DBGrid1.DataSource.DataSet.Close;
DBGrid1.DataSource.DataSet.Open;让他重新在数据库里查询出信息

delphi dbgrid 怎么才能只选中第一列

我现在需要dbgrid第一列的参数(学号),然后传到另一个form,怎么才能控制让用户只能选中第一列,这样防止参数传错

如果你的DBGRID里显示是用adoquery1来显示的,那么直接传
adoquery1.fieldbyname('学号').asstring;
这个就是你在DBGRID里选中行的学号列的值,直接传这个就行了

如果你要只显示这一列的话,就
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('select 学号 from 表名');
adoquery1.open;
参考技术A 其实选中哪个列都无所谓。你传递这个学号数据的时候,直接读取你的查询或者table中当前记录中的学号数据不就是了。因为你这个是 DBgrid。 参考技术B 加一个简单的if判断就可以了。
首先,用DBGrid1.SelectedField.FieldName取得选中区域的字段名;
其次,再用FDQuery1(或ADOQuery1).Field[0].FieldName取得第一列的字段名;
最后,判断两者是否相等,若相等则执行你所需的参数传递操作,否则不予相应。
如此一来便可实现仅能选择第一列参数,选择其他列无效的效果。
参考代码如下,可按具体需求调整。procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
if (DBGrid1.SelectedField.FieldName = FDQuery1.Fields[0].FieldName) then
begin
//相应的传递参数操作;
end;
end;

以上是关于delphi DBGrid里面的值如何自动更新的主要内容,如果未能解决你的问题,请参考以下文章

delphi dbgrid 修改、更新、删除

delphi 中的DBGRID列之间自动计算如何写程序

delphi中如何在dbgrid中主动添加序号?求赞助!

delphi dbgrid

Delphi DBgrid 换行 Word 内容

delphi 7 DBGrid 实现下拉选择后更新