Pergunta

Eu tenho duas declarações SQL UPDATE para dois objeto SqlCommand para atualizar um DataTable com DataSet objeto para Tabela Source One. Quando clico no botão atualizar que de actualização apenas o primeiro eo segundo objeto SqlCommand não funciona. O que é isso? DataTable não apoiou dois objeto de comando de uma só vez? Eu escrevo a seguir:

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

Não é possível que eu uso como acima? por favor me aponte para fora!

Olá! Ajude-me! F1:)

Foi útil?

Solução

A maneira como você usá-lo você precisa shouln't os DataAdapters e conjuntos de dados ...
Você acabou de executar 2 instruções de atualização.

Você pode apenas fazer

cmdStockUpdateCmd1 = New SqlCommand("UPDATE Stock SET StockCode= 'Test-Code2' WHERE StockID = 1", conxMain, transPurchaseInfo)
cmdStockUpdateCmd1.ExecuteNonQuery();

Os conjuntos de dados e DataAdapters são para a obtenção de dados para o cliente.
Alteração de dados no lado do cliente e, em seguida, enviar as modificações para o servidor.
Você está fazendo as alterações diretamente no servidor com SQL.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top