二つのSqlCommandオブジェクトと一つのソース表を更新します
-
19-09-2019 - |
質問
私は1つのソーステーブルにDataSetオブジェクトと1つのDataTableを更新するには、2つのSqlCommandオブジェクトのための2つの更新SQL文を持っています。私は最初のものと第二SqlCommandオブジェクトが動作しない更新のUpdateボタンをクリックします。それは何です? DataTableには、一度に2つのコマンドオブジェクトをサポートしていませんでしたか?私は次のように記述します:
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:)
解決
あなたがそれを使用する方法は、あなたが
... dataadaptersとデータセットを必要とするshouln't
あなたはわずか2つの更新ステートメントを実行します。
あなただけ行うことができます。
cmdStockUpdateCmd1 = New SqlCommand("UPDATE Stock SET StockCode= 'Test-Code2' WHERE StockID = 1", conxMain, transPurchaseInfo)
cmdStockUpdateCmd1.ExecuteNonQuery();
データセットとdataadaptersは、クライアントにデータを取得するためのものである。
クライアント側でデータを変更し、サーバーに変更を送信する。
あなたは、SQLを使用してサーバー上で直接変更を行っている。
所属していません StackOverflow