문제

두 개의 SQLCommand 객체에 대한 두 개의 업데이트 SQL 문이 있습니다. 하나의 DataTable을 하나의 소스 테이블로 업데이트합니다. 업데이트 버튼을 클릭하면 첫 번째 업데이트 버튼이 있고 두 번째 SQLCommand 객체는 작동하지 않습니다. 이게 뭐야? DataTable은 한 번에 두 개의 명령 객체를 지원하지 않았습니까? 나는 다음과 같이 씁니다.

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

위와 같이 사용할 수 없습니까? 제발 나를 지적 해주세요!

안녕하세요 ! 도와주세요! f1 :)

도움이 되었습니까?

해결책

당신이 그것을 사용하는 방식은 당신이 데이터 어드플레이터와 데이터 세트가 필요하지 않습니다 ...
2 개의 업데이트 문을 실행합니다.

당신은 그냥 할 수 있습니다

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

데이터 세트 및 데이터 아디포터는 클라이언트에 데이터를 가져 오기위한 것입니다.
클라이언트 측에서 데이터를 변경 한 다음 수정을 서버로 전송합니다.
SQL을 사용하여 서버에서 직접 변경하고 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top