Dois SqlCommand objetos e Atualizando tabela Source One
-
19-09-2019 - |
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:)
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.