0

私はUltraGrid自分のプロジェクトに を持っており、データが一致しているデータベース内のデータを更新するための更新機能をフォームに持っています。

グリッド内のデータは として保存されていDataTableます。既存のデータの行が から削除された場合、その行のを 'RowState.Deleted RowState`UltraGridに設定できるようにしたいと考えています。削除された行の場合は削除し、それ以外の場合はデータを更新します。RowStateDataTable, so that in the Update function I can check the

どうすればこれを行うことができますか?これまでのところ、以下のコードがありますが、返される行数は 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
4

2 に答える 2

0

解決しました。

  • DataTableクラスの先頭でa を宣言する

  • メソッドで、BeforeRowsUpdate新しい行を に挿入しDataTableます。これは、削除される行の値です。

  • 必要に応じて、行の削除を希望していることを確認する確認ボックスを含めます。削除をキャンセルした場合は、 から行を削除しDataTableます。

  • これDataTableは、クエリで行を削除するために使用できUPDATEますが、グリッドは行DataSourceを処理できます。UPSERTS

于 2016-10-12T14:29:51.547 に答える
0

グリッドは、行を削除済みとしてマークする (RowState を設定する) を呼び出します。TableAdapter を使用している場合は、DataTable を TableAdapter に渡すテーブル アダプターで Update を呼び出すだけで、データベースで更新が行われます。例えば:

ultraGrid1.UpdateData()
Me.dbRowsTableAdapter.Update(Me.testDataSet)

更新を手動で処理する必要があり、削除された行を取得する必要がある場合は、DataTable でSelectを呼び出し、3 番目のパラメーターにDataViewRowState .Deleted を渡すことができます。

于 2016-10-07T20:56:12.867 に答える