私のプロジェクトにはUltraGrid
があり、データが一致するデータベース内のデータを更新するために、フォームに更新機能があります。削除するDataTable行のRowStateを設定します
グリッドのデータはDataTable
として保存されています。既存のデータの行がUltraGrid
から削除された場合、DataTable
にその行のRowState
を 'RowState.Deleted , so that in the Update function I can check the
RowState`に設定し、削除された行であればそれを削除します。それ以外の場合は更新しますデータ。
これを行うにはどうすればよいですか?今のところ、以下のコードがありますが、返される行の数は1(またはグリッドの行の現在の数)で、2(1行を削除する前の数)ではありません。
コード内で、削除された行のRowState
をどのようにしてどこに設定しますか?RowState.Deleted
? UltraGrid
を使用して代替方法がありますか?
dsProducts.Tables.Add(commDt.Copy) -- commDt is the DataTable linked to the UltraGrid
tr = con.BeginTransaction(
For Each dr As DataRow In dsProducts.Tables(0).Rows
If dr.RowState = DataRowState.Deleted Then
Try
を扱うことができる一方で
この
DataTable
はその後、UPDATE
クエリで行を削除するために使用することができます。 Delete() ')、行の状態が設定されます。 DataAdapterを使用している場合は***、***はローステートに基づいて各行に対して適切なアクションを実行します: 'Dim rows = myDA.Update(dsProducts.Tables(0)) ' – Plutonix@Plutonix私はプログラム的ではありません'UltraGrid'によって自動的に処理される行を削除するように設定します。 'DataAdapter'を使うことで、実際の更新/削除クエリ自体を意味しますか? 'OleDbCommand'ではなく? – David
この[DataGridview経由で値を検索する](http://stackoverflow.com/a/33702351/1070452)では、DataAdapter(あなたの場合は 'OleDBDataAdapter')を設定し、使用する方法を示しています。 Update、Deleteなどのコマンドを「保持」し、Updateメソッドでそれらを発行します。 – Plutonix