该应用程序使用 ASP.NET Web 表单在 .NET 中进行编码。我正在尝试更改数百个订单号的优先级代码。
要分配的新代码是用户在 GridView 中订单号旁边的下拉列表中选择的代码。
这是我的 SQL 更新语句,当用户单击更新按钮时执行
for (int i = 0; i < GridView1.Rows.Count; i++)
{ DropDownList PTY_CHANGE = (DropDownList)GridView1.Rows[i].FindControl("PTY_CHANGE");
cnn3.Open();
query = BEGIN TRAN T1
UPDATE DATAORDERS
SET DATAORDERS.PRIORITYCODE =@PTYCODE WHERE DATAORDERS.ORDERNO =@ORDERNO
COMMIT TRAN T1
SqlCommand cmd = new SqlCommand(query, cnn3);
cmd.Parameters.AddWithValue("@PTYCODE ", PTY_CHANGE.SelectedItem.Value);
cmd.Parameters.AddWithValue("@orderno", GridView1.Rows[i].Cells[0].Text);
cmd.CommandTimeout = 180;
cmd.ExecuteReader();
cnn3.Close();
}
我遇到的问题是某些订单被锁定(很可能公司中的其他人正在不同的模块中处理该订单),因此代码只是停滞不前。
我想跳过该订单,然后尝试更新列表中的下一个订单号。
谢谢您的帮助。
BEGIN TRAN T1
UPDATE DATAORDERS WITH (READPAST)
SET DATAORDERS.PRIORITYCODE =@PTYCODE WHERE DATAORDERS.ORDERNO =@ORDERNO
COMMIT TRAN T1