If e.CommandName = "CheckOut" Then
Dim dbw As New DBWarehouse
Dim dbo As New DBOrderSale
Dim dt As New DataTable
Dim OrderID, StatusID As Integer
'获取操作的订单号
OrderID = e.CommandArgument
dt = dbo.GetOrderSaleByID(OrderID) '得到订单状态
StatusID = dt.Rows(0).Item("StatusID")
'如果不是新订单,退出
If StatusID <> 1 Then
lblMessage.Text = "订单状态不符!"
Exit Sub
End If
Try
'建立事务
Using scope As New TransactionScope()
'订单内容添加到库存变化
dbw.AddWarehouseFromOrderSale(OrderID)
'订单状态修改为已出库
dbo.UpdateOrderSaleStatus(OrderID, 10)
scope.Complete()
End Using
Catch
End Try
BindGridView()
End if几万个订单会有一个重复出库,怎么回事?
Dim dbw As New DBWarehouse
Dim dbo As New DBOrderSale
Dim dt As New DataTable
Dim OrderID, StatusID As Integer
'获取操作的订单号
OrderID = e.CommandArgument
dt = dbo.GetOrderSaleByID(OrderID) '得到订单状态
StatusID = dt.Rows(0).Item("StatusID")
'如果不是新订单,退出
If StatusID <> 1 Then
lblMessage.Text = "订单状态不符!"
Exit Sub
End If
Try
'建立事务
Using scope As New TransactionScope()
'订单内容添加到库存变化
dbw.AddWarehouseFromOrderSale(OrderID)
'订单状态修改为已出库
dbo.UpdateOrderSaleStatus(OrderID, 10)
scope.Complete()
End Using
Catch
End Try
BindGridView()
End if几万个订单会有一个重复出库,怎么回事?
解决方案 »
- 大家帮我看下这个三级联动错在那里了!
- 100散分.......TextBox多行显示问题
- 请问怎样按一个按钮就读出DataGrid的数据呢?急求答案
- 下载问题,急用!
- 我从网上下载了eWebEditer2.80,根据test.asp文件进行了改制。但是在提交的时候汉字提交不过去。不知道是什么原因?
- 关于显示的问题
- 无人应答,再次提问:在同一个页面内如何定义多个SqlDataReader?
- 请教:RequiredFieldValidator控件和ValidationSummary控件
- vs2013无法加载实体数据模型工具包
- 昨天的问题今天依旧!关于datagrid
- css样式求助
- 关于GridView
对于SQL Server来说,你至少需要在 dbo.GetOrderSaleByID(OrderID) 这一条语句之前就开启事务。SQL Server几乎是现在比较流行的商品化关系数据库中,默认的事务隔离级别最严格的一个数据库系统了。如果你使用其他事务隔离级别比较低级的关系数据库系统(比如Oracle),那么即使是把你的所有代码一开始就启动事务也无法保证不会脏读,可以看看他们的产品的文档如何避免这类脏读。
{
//方法1
//方法2:
scope.Complete();
}
Using scope As New TransactionScope()
'得到订单状态
dt = dbo.GetOrderSaleByID(OrderID)
StatusID = dt.Rows(0).Item("StatusID")
'如果不是新订单,退出
If StatusID <> 1 Then
lblMessage.Text = "订单状态不符!"
Exit Sub
End If '订单内容添加到库存变化
dbw.AddWarehouseFromOrderSale(OrderID)
'订单状态修改为已出库
dbo.UpdateOrderSaleStatus(OrderID, 10)
scope.Complete()
End Using这样会自动为订单表加锁吗?或者要手动加锁解锁?