我正在使用以下代码计算Access数据库中的下一个唯一订单号。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(使用不同的db连接),代码将不会获取新的“下一个订单号”。
例如
iFoo = NewOrderNo
CreateNewWorkOrderWithNumber(iFoo)
iFoo2 = NewOrderNo
将向ifoo和ifoo2返回相同的值。
如果我关闭然后重新打开serverdb,作为“neworderno”函数的一部分,那么它就会工作。ifoo和ifoo2是正确的。
是否有任何方法可以强制“system.data.oledb.oledb connection”在这种情况下刷新数据库,而不关闭并重新打开连接。
例如,是否有与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