怎么样批量更新DataGrid中选中的多条记录?
for i:=0 to DataGrid1.SelectedCount-1 do
begin
  //Query1.Open;
  // Query1.Edit;
  DataSetKHSJJ.SQL.Text:='update KHB set KHZT=1 where BH='+''''+DataSetKHSJJ.FieldByName('BH').AsString+'''';
  //Query1.Execute;
  DataSetKHSJJ.Execute;
end;

解决方案 »

  1.   

    DataGrid1的行选要设置为True,否则SelectedCount无效
      

  2.   

    单说更新语句应该没问题,不知道你datagrid1的dataset是不是DataSetKHSJJ而且你这样写,个人感觉不太合理吧
      

  3.   

    建议先进行本地数据集更新,然后一次更新回数据库。
    设置adoquery.locktype:=ltBatchOptimistic
    更新adoquery.updatebatch()
      

  4.   

    DataSetKHSJJ.SQL.Text:='update KHB set KHZT=1 where BH='+''''+DataSetKHSJJ.FieldByName('BH').AsString+''''; 
                                                                  这句有问题吧DataSetKHSJJ.SQL.TEXT 换成别的query,因为条件中也用了。