Pregunta

Tengo dos sentencias SQL de actualización para los dos objetos SqlCommand para actualizar una DataTable con objeto DataSet a una tabla de origen. Cuando hago clic en el botón de actualización que la actualización sólo el primero y el segundo objeto SqlCommand no funciona. ¿Que es eso? DataTable no apoyó dos objetos de comando a la vez? Escribo como sigue:

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

¿No puedo usar como el anterior? por favor, señalar hacia fuera!

Hola! ¡Ayuadame! F1:)

¿Fue útil?

Solución

La forma de usar que se necesita shouln't los DataAdapters y conjuntos de datos ...
Que acaba de ejecutar 2 instrucciones de actualización.

Sólo puede hacer

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

Los conjuntos de datos y DataAdapters son para obtener datos al cliente.
Modificación de datos en el lado del cliente y luego enviar las modificaciones en el servidor.
Usted está haciendo los cambios directamente en el servidor con SQL.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top