我正在使用以下代码来计算访问数据库中的下一个唯一订单号。ServerDB 是一个“System.Data.OleDb.OleDbConnection”
Dim command As New OleDb.OleDbCommand("", serverDB)
command.CommandText = "SELECT max (ORDERNO) FROM WORKORDR"
iOrder = command.ExecuteScalar()
NewOrderNo = (iOrder + 1)
如果我随后创建了一个 WORKORDR(使用不同的数据库连接),代码将不会获取新的“下一个订单号”。
例如
iFoo = NewOrderNo
CreateNewWorkOrderWithNumber(iFoo)
iFoo2 = NewOrderNo
将向 iFoo 和 iFoo2 返回相同的值。
如果我关闭然后重新打开 serverDB,作为“NewOrderNo”功能的一部分,那么它可以工作。iFoo 和 iFoo2 将是正确的。
有没有办法强制“System.Data.OleDb.OleDbConnection”在这种情况下刷新数据库而不关闭并重新打开连接。例如,是否有任何等效于 serverdb.refresh 或 serverdb.FlushCache
我如何创建订单。 我想知道这是否可能是由于在创建订单后没有更新我的交易造成的。我正在使用 XSD 来创建订单,而我用来创建记录的代码是......
Sub CreateNewWorkOrderWithNumber(ByVal iNewOrder As Integer)
Dim OrderDS As New CNC
Dim OrderAdapter As New CNCTableAdapters.WORKORDRTableAdapter
Dim NewWorkOrder As CNC.WORKORDRRow = OrderDS.WORKORDR.NewWORKORDRRow
NewWorkOrder.ORDERNO = iNewOrder
NewWorkOrder.name = "lots of fields filled in here."
OrderDS.WORKORDR.AddWORKORDRRow(NewWorkOrder)
OrderAdapter.Update(NewWorkOrder)
OrderDS.AcceptChanges()
End Sub