如何使DBGrid中被修改过数据的行自动被选中,
是使用DBGrid.SelectedRows,
还是ADOquery.Book,
或者其它什么的,请各位指点一二,谢谢!
是使用DBGrid.SelectedRows,
还是ADOquery.Book,
或者其它什么的,请各位指点一二,谢谢!
解决方案 »
- 窗口置顶
- 请问一下,如何获得TShelllistview控件中,如何获得选择的所有文件名?
- 数组出错,各位帮一帮,分不够再加
- 求助!!Delphi调用VB写的COM的问题~~~在线等待~~
- 通过modem发送数据的问题。搞不定了,高手们来帮帮我啊!呜呜呜...
- 怎样将查询到DBGrid1的Columns[0]进行排序。
- ADOQuery的sort:='号码 desc' 报field:'号码 desc' not found 错,怎么办?
- 串口通讯。。很简单的
- CXGRID的单元格如何实现自动计算?
- 如何让Fastreport中某个masterData像pageheader那样每页都显示?
- 为什么我使用了 popupmenu 组件创建快捷菜单,运行后单击右键没有显示啊??
- 如何控制在Edit.text输入的字符不能为'
你指的是ADOquery的Book吗?
但是在更改DBGrid时如何联系到ADOquery.Book上?
可以给我一个例子吗?谢谢
procedure GetSelectedRecord
(DataSet : TDataSet; FieldName : String;
BookList : TBookList; Strings : TStrings);
//这个过程中的参数分别为:数据表、字段名称、
书签、用来保存所选字段内容的
//字符串(用于将内容传递到另
一个单独窗体中的TLIST控件中)
var
I: Integer;
bm : TBookMark;
begin
Strings.Clear;
with Dataset do begin
DisableControls;
bm := GetBookMark;
try
//每个选择的记录都有一个书签标志,
这就为处理它们提供了条件
for I := 0 to BookList.Count - 1 do begin
Book := BookList[I];
Strings.Add(DataSet.FindField(fieldname).AsString);
end;
finally
GotoBookMark(bm);
FreeBookMark(bm);
EnableControls;
end;
end;
end;调用举例:
GetSelectedRecord(Table1, 'NAME', DBGrid1.SelectedRows,
Form2.ListBox1.Items);
DBGrid的数据源修改后,如果没有刷新,指针就是当前修改的记录,
让那条记录选中就行了。
这样的方法我明白
我得意思是,在一个DBGrid中有若干条记录,当我修改其中的一部分记录时这些记录就会自动的被选中,也就是添加到DBGrid.SelectedRows中,但是我认为DBGrid.SelectedRows是只读的,我并没有找到将修改过的记录添加到DBGrid.SelectedRows中的方法
谢谢!
我也是想修改DBGrid.SelectedRows,但是DBGrid.SelectedRows好像是只读的,我没有找到修改DBGrid.SelectedRows的方法
DBGrid.SelectedRows可以修改吗?
谢谢!
AdoQuery.Book后, DBGrid中的当前行应该自动添加到SelectRows.
问题的关键是怎样知道 DBGrid 的当前行是否被修改了。由于是单向数据集,不能通过数据集判断。
很麻烦。
我现在是通过一个动态数组来进行比较的
当adoquery查询出来后用动态数组来记录每条要修改数据的初始值,动态数组的下标于数据集一一对应修改之后进行比较,可以看出那条数据进行了修改
之后如何将修改的记录添加到DBGrid.SelectedRows里就不知道如何实现了
谢谢!
你指的是ADOQuery1.Locate吧?
ADOQuery1.Locate的用法我大概看了一下,但是用ADOQuery1.Locate能选中多行吗?
我想要实现的是所有改过的数据全部自动选中这样可以吗?
能再说的详细点吗?不胜感激。
下面代码把数据集bldData所有记录都加入SelectedRows。 你改一下
dgBld是DBGrid, bldData 是它的数据集procedure TBuildingForm.Button1Click(Sender: TObject);
begin
bldData.First;
while not bldData.Eof do begin
dgBld.SelectedRows.CurrentRowSelected := true;
bldData.Next;
end;
end;