0

IDE のデータソースとデータセット コントロールを使用する winforms アプリケーションがあります。

これは私が使用しているコードブロックです

        dsParcelBatch.BC_cpo_PARCELRow pr = dsParcelBatch.BC_cpo_PARCEL.FindByISN(int.Parse(activeParcelID));
    pr.BeginEdit();
    pr.NODE_ISN = 6;
    pr.EndEdit();       
    pr.AcceptChanges();

    dsParcelBatch.AcceptChanges();

1 行目の正しい行を読み取ることができ、PR 行に正しい値が入力されています。beginedit を呼び出しますが、dsParcelBatch は更新されていません。

NODE_ISN の値を新しい値に変更すると、固執します

編集を閉じて、行の変更を受け入れます。データソース (dsParcelBatch) を調べると、そこに変更が含まれています。

dsParcelBatch を呼び出すと、変更された値が変更されます....

しかし、データベースを表示すると、値は元の値に戻ります (5)

何が足りないのですか?

4

1 に答える 1

0

AcceptChanges を呼び出す前に、DataAdapterを使用してデータベースを更新する必要があります。

AcceptChanges は、データベースではなく、DataTable の行の状態のみを変更します。

MSDN :

AcceptChanges が呼び出されると、まだ編集モードにある DataRow オブジェクトは、その編集を正常に終了します。DataRowState も変更されます。Added および Modified の行はすべて Unchanged になり、Deleted の行は削除されます。

于 2012-07-29T06:27:30.037 に答える