DataGridViewから変更されたデータを選び抜き出す
        投稿者 るきお  (社会人)
        
        投稿日時 
            2011/4/11 12:39:36
        
    
    
        DataTableにはそれ自体に変更管理機能がありますので、それを利用されるのはどうでしょうか?
まずDataRowのRowStateプロパティを使うと、そのレコードが追加されたのか、削除されたのか、変更されたのか取得することができます。
Itemプロパティを使うと修正前の値を取得することも可能です。
これらの機能を使うと以下のようなプログラムが可能です。
(未検証なので誤字等あるかもしれません。)
 
 
 
 
    
まずDataRowのRowStateプロパティを使うと、そのレコードが追加されたのか、削除されたのか、変更されたのか取得することができます。
Itemプロパティを使うと修正前の値を取得することも可能です。
これらの機能を使うと以下のようなプログラムが可能です。
(未検証なので誤字等あるかもしれません。)
Dim Row As DataRow = Table.Rows(0)
If Row.RowState = DataRowState.Modified Then
    MsgBox "1行目は変更されています。"
    MsgBox "変更前の[名前]列の値:" & Row("名前", DataRowVersion.Original)
    MsgBox "変更後の[名前]列の値:" & Row("名前")
End If
    
        投稿者 shu  (社会人)
        
        投稿日時 
            2011/4/11 13:42:58
        
    
    
        > 見比べ変更点を探しそこをアップデートしようと考えているのですが。
DBへの更新ということですか?だとするとDataAdapterからの派生クラスは用意されていませんか?
Dataset.Tables("テーブル名")をDataGridViewにバインドすれば、
DataAdapter.Update(Dataset)で
DataTableへのDatarowの追加(追加した行)をInsert
DataTableのDatarowの変更(変更した行)をUpdate
Datarow.DeleteしたDatarow(削除した行)をDelete
として処理されると思います。
    
DBへの更新ということですか?だとするとDataAdapterからの派生クラスは用意されていませんか?
Dataset.Tables("テーブル名")をDataGridViewにバインドすれば、
DataAdapter.Update(Dataset)で
DataTableへのDatarowの追加(追加した行)をInsert
DataTableのDatarowの変更(変更した行)をUpdate
Datarow.DeleteしたDatarow(削除した行)をDelete
として処理されると思います。
データグリッドビューに値のデータソースに値をデータテーブルで登録します。
この時、型付を使えれば良いのですがプロパイダーがVS2010に未対応の為
型付データセットが作成できません。
単純なデータテーブル等であれば生成できる為、それらを利用し
データソースに登録します。
この時、データソースに登録したデータテーブルのコピーを検証用として
とって置き、データグリッドビューで変更が加えられた場合データソースとそのテーブルを
見比べ変更点を探しそこをアップデートしようと考えているのですが。
なんだかレガシーな気がします。もっと便利なクラスやフローがありそうだと思い
質問します。
よろしくお願いします。