J'utilise le code suivant pour élaborer le numéro de commande unique suivant dans une base de données d'accès. ServerDB est un « System.Data.OleDb.OleDbConnection »SELECT à travers oledbcommand dans vb.net pas ramasser les changements récents
Dim command As New OleDb.OleDbCommand("", serverDB)
command.CommandText = "SELECT max (ORDERNO) FROM WORKORDR"
iOrder = command.ExecuteScalar()
NewOrderNo = (iOrder + 1)
Si je crée ensuite un WORKORDR (en utilisant une autre connexion DB), le code ne sera pas ramasser le nouveau « prochain numéro de commande. »
par exemple.
iFoo = NewOrderNo
CreateNewWorkOrderWithNumber(iFoo)
iFoo2 = NewOrderNo
retournera la même valeur à iFoo et à iFoo2.
Si je ferme puis rouvre serverDB dans le cadre de la fonction "NewOrderNo", cela fonctionne. iFoo et iFoo2 seront corrects.
Existe-t-il un moyen de forcer un "System.Data.OleDb.OleDbConnection" pour actualiser la base de données dans cette situation sans fermer et rouvrir la connexion. par exemple. Y at-il quelque chose d'équivalent à serverdb.refresh ou serverdb.FlushCache
Comment je crée la commande. Je me demandais si cela pouvait être causé par la non mise à jour de mes transactions après la création de la commande. J'utilise un XSD pour la création d'une commande, et le code-je utiliser pour créer l'enregistrement est ...
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
quelle est exactement cette fonction: faire CreateNewWorkOrderWithNumber (IFoo)? – manji
J'ai inclus le code pour CreateNewWorkOrderWithNumber. – seanyboy