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:)

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top