如何将Dbgrid所选择的多行记录中的某一列的值全部修改为'abc'?
解决方案 »
- 请教关于网络通信的几个问题,请高手来帮忙。
- 用INDY控件发邮件时,如用21CN来发,老显示如下错误信息
- 求助:在delphiz中对BLOB数据的处理
- 流媒体的问题
- 只显示文件夹的名字
- 怎样确定前一次触发的是哪一个控件的事件?
- 一个关于clientsocket和serversocket的问题,急@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
- 在那里可以下载Flash 最新版本?
- 关于string的函数
- 求CadoDraw4_C4.exe的Winzip解压密码!!恳请知道的朋友帮忙!!
- Dbgrid中所选择的多行记录进行批量修改的问题?
- 请教,在ListView 或表格中如何 在某一格中加入Button
for I:=1 to data1.ADOQuery1.RecordCount do
begin
data1.ADOQuery1.edit;
data1.ADOQuery1.fieldByName('图号').asstring:='abc';
data1.ADOQuery1.post;
data1.ADOQuery1.Next;
end;
我的意思是将DBGrid1.SelectedRows (Dbgrid所选择的多行记录)进行修改,不是将Adoquery中的所有记录都修改。
with DBGrid1.DataSource.DataSet do
begin
for i:=0 to DBGrid1.SelectedRows.Count-1 do
begin
GotoBook(pointer(DBGrid1.SelectedRows.Items[i]));
Edit;
Fields[1].Value:='abc';
end;
Adoquery1.UpdateBatch(arAll);
procedure TForm1.Button1Click(Sender: TObject);
begin
if DBGrid1.SelectedRows.Count<=1 then Exit;
DBGrid1.DataSource.DataSet.First;
while not DBGrid1.DataSource.DataSet.Eof do
begin
if DBGrid1.SelectedRows.CurrentRowSelected then
DBGrid1.DataSource.DataSet.Edit;
DBGrid1.DataSource.DataSet['指定字段名']:='abc';
DBGrid1.DataSource.DataSet.UpdateRecord;
DBGrid1.DataSource.DataSet.Next;
end;
end;
begin
data1.ADOQuery1.edit;
data1.ADOQuery1.fieldByName('图号').asstring:='abc';
data1.ADOQuery1.post;
data1.ADOQuery1.Next;
end;
//可以先判断行是否被选中,如果是修改,不是continue;
var i:integer;
begin
if DBGrid1.SelectedRows.Count>0 then
with DBGrid1.DataSource.DataSet do
try
DisableControls;
for i:=0 to DBGrid1.SelectedRows.Count-1 do
begin
GotoBook(pointer(DBGrid1.SelectedRows.Items[i]));
Edit;
Fields[1].Value:='abc';
Post;
end;
finally
EnableControls;
end;
end;
请各位高手指点!