1

データベーステーブルのデータを消去するための簡単なコンソールアプリケーションを作成しました (空白など)。

アプリケーションは、データベースから選択したテーブルで DATATABLE を埋めて処理します。次に、データテーブルの変更を保存します ( dataTable.AcceptChanges() ) コードを使用して DATATABLE 内の編集されたデータでデータベースを更新しようとすると、問題が発生します以下(MSDNから):

    Dim DA As New MySqlDataAdapter(SQL, connessione)
    Dim CB As New MySqlCommandBuilder(DA)

    DA.Update(DT)

エラーは表示されませんが、データベースは更新されません。

4

1 に答える 1

1

データテーブルでAcceptChangesを呼び出さないでください。
このメソッドは、すべての DataRow RowStateプロパティをModified/Added/Deletedから に変更しUnchangedます。その結果、DataAdapter.Update更新/削除/追加する行が見つかりません

DataTable オブジェクトは、行を受け取った基になるデータベース テーブルから切断されます。AcceptChanges を呼び出すと、データベースではなくメモリ内のオブジェクトに変更がコミットされます。
Update メソッドを持つ MySqlDataAdapter は、データベースに接続し、DataTable で見つかった変更を適用することを認識しています。AcceptChanges を呼び出すと、この機能が妨げられます

于 2013-03-28T18:19:48.843 に答える