我有一个表单2个按钮与2个不同的事件,一个设置的订单准备,另一个被拒绝。对于我的字符串网格,我从数据库中选择记录,对于buttonClick事件,我使用我在更新查询中输入的值advStringGrid.Selectedtext创建更新查询。但问题是,当我第一次单击Ready按钮,然后单击拒绝按钮时,没有关闭窗体,那么字符串值只保留到第一次单击。也许可以选择"immediately“或w/o结束形式来获取advStringGrid.Selectedtext变量的新值。
procedure TfTodoList.setRefusedbtnClick(Sender: TObject);
var
i: Integer;
begin
if (Sender = setRefusedbtn) and (State = 0) then
begin
qryExec.Sql.Text := 'Update KitchenOrderRow Set StatusID = 1' +
' Where (OrderId in (Select OrderId from KitchenOrderHeader ' +
' Where Invoice = ' + IntToStr(Orders[X].Invoice) +
')) and (InvRowId = ' + IntToStr(Orders[X].InvRowId) + ')';
advOrderGridClickCell(Sender, X, Y);
end
else if (State = 1) and (setRefusedbtn = Sender) then
begin
ProductName := advOrderGrid.SelectedText;
qryExec.Sql.Text := 'Update KitchenOrderRow Set StatusID = 1' +
' where productName = ''' + ProductName + ''' and StatusID = ' +
IntToStr(qryStatusStatusID.asInteger) + '';
State := 0;
// fk_lib.logisse(nil, qryExec.Sql.Text);
end;
qryExec.ExecSQL;
advOrderGrid.RemoveSelectedRows;
end;发布于 2015-06-08 19:27:18
如果更新dataset中在DbGrid中使用的某些值,则应刷新连接到DbCrid的数据集。关闭/打开表单执行此操作。执行update查询后,执行以下操作:
Grid.Datasorce.DataSet.Refresh;或
Grid.Datasorce.DataSet.Close;
Grid.Datasorce.DataSet.Open;更新:
如果你的网格没有通过datalink(datasource)直接连接到数据库,你可以刷新它,就像执行用数据填充网格的过程一样。
https://stackoverflow.com/questions/30707224
复制相似问题