所以我有一个TDBGrid,我的目的是搜索DBGrid的字段名,并将其与我的编辑的文本属性进行比较,如果它们相等,
我想把我找到的匹配的整个列写成一个ListBox。
使用带有fieldcount的for循环,我可以比较FieldName,但由于没有可以使用的行或行数属性,我不知道如何获得整个列的索引。
for i:=0 to DBGrid1.FieldCount-1 do
begin
if DBGrid1.Fields[i].FieldName=Edit1.Text then
for j:=1 to DBGrid1.RowCount-1 do
ListBox1.Items.Add(DBGrid1.Rows.Fields[i].Index.AsString);
end;这是我想要做的一个虚构的代码……
附言:我仍然在使用Delphi 7,(教育原因)
发布于 2012-12-26 23:11:27
您不能直接从DbGrid获取行值。相反,您必须在用于提供DbGrid的数据集之间导航。
此示例假设您使用的是TClientDataSet。
for i := 0 to DBGrid1.FieldCount - 1 do
begin
if DBGrid1.Fields[i].FieldName = Edit1.Text then
begin
ClientDataSet1.DisableControls;
try
ClientDataSet1.First();
while (not ClientDataSet1.Eof) do
begin
ListBox1.Items.Add(ClientDataSet1.FieldByName(Edit1.Text).AsString);
ClientDataSet1.Next();
end;
finally
ClientDataSet1.EnableControls;
end;
end;
end;发布于 2012-12-26 23:15:02
就DBGrid只显示数据的摘录而言,您应该
https://stackoverflow.com/questions/14042306
复制相似问题