Deux objets SqlCommand et mise à jour de table Une source
-
19-09-2019 - |
Question
J'ai deux mises à jour des instructions SQL pour deux objets SqlCommand pour mettre à jour un DataTable avec un objet DataSet à une table source. Lorsque je clique sur le bouton de mise à jour qui est mise à jour que le premier et le second objet SqlCommand ne fonctionne pas. Qu'est ce que c'est? DataTable ne prend pas en charge deux objets de commande à un moment donné? Je vous écris comme suit:
Dim conxMain As New SqlConnection("Data Source=SERVER;Initial Catalog=DBTest;Persist Security Info=True;User ID=usr;Password=pwd")
Dim dadStockInfo As New SqlDataAdapter
Dim dsStockInfo As New DataSet
Dim transStockInfo As SqlTransaction = Nothing
Try
conxMain.Open()
transStockInfo = conxMain.BeginTransaction()
dadStockInfo.SelectCommand = New SqlCommand("SELECT * FROM Stock", conxMain, transStockInfo)
Dim builder As SqlCommandBuilder = New SqlCommandBuilder(dadStockInfo)
dadStockInfo.FillSchema(dsStockInfo, SchemaType.Source, "Stock")
dadPurchaseInfo.Fill(dsPurchaseInfo, "Stock")
Dim cmdStockUpdateCmd As SqlCommand = Nothing
cmdStockUpdateCmd = New SqlCommand("UPDATE Stock SET StockCode= 'TestCode' WHERE StockID = 4", conxMain, transStockInfo)
dsStockInfo.Tables("Stock").Columns("StockID").ReadOnly = False
dadStockInfo.UpdateCommand = cmdStockUpdateCmd
//dadStockInfo.Update(dsStockInfo, "Stock") [I have already tried this but did not work]
Dim cmdStockUpdateCmd1 As SqlCommand = Nothing
cmdStockUpdateCmd1 = New SqlCommand("UPDATE Stock SET StockCode= 'Test-Code2' WHERE StockID = 1", conxMain, transPurchaseInfo)
dadStockInfo.UpdateCommand = cmdStockUpdateCmd1
dadStockInfo.Update(dsStockInfo, "Stock")
transStockInfo.Commit()
Je ne peux pas utiliser comme ci-dessus? s'il vous plaît me signaler!
Bonjour! Aidez moi! F1:)
La solution
La façon dont vous l'utilisez-vous shouln't besoin des DataAdapters et des ensembles de données ...
Vous exécutez à seulement 2 déclarations de mise à jour.
Vous pouvez juste faire
cmdStockUpdateCmd1 = New SqlCommand("UPDATE Stock SET StockCode= 'Test-Code2' WHERE StockID = 1", conxMain, transPurchaseInfo)
cmdStockUpdateCmd1.ExecuteNonQuery();
et datasets DataAdapters sont pour obtenir des données au client.
Modification des données du côté client, puis d'envoyer les modifications au serveur.
Vous faites vos modifications directement sur le serveur avec SQL.