none
DataView からデータベースを更新するには RRS feed

  • 質問

  • DataView からデータベースを更新したいと思っています。

    今まで、ずっとDataTable をDataGridView のDataSource にしていたために、
    DataTable からDataRow を取得する方法以外には更新する方法が理解出来ていません。

    ヘルプで、DataView の変更 (ADO.NET) を探したのですが、
    http://msdn.microsoft.com/ja-jp/library/70k6287b.aspx
    これを読んでもDataView での特定行の更新方法が分かりませんでした。

    DataView の特定行のEndEdit 後に、データベースに反映するにあたってのアドバイスをお願いいたします。

    • 編集済み yasheeki 2010年11月28日 12:45 肝心な部分の追加
    2010年11月28日 12:15

回答

すべての返信

  • DataView の Table プロパティを使えば、DataView のもとになった DataTable を取得できます。

    http://msdn.microsoft.com/ja-jp/library/system.data.dataview.table(v=VS.80).aspx

    もとになった DataTable を取得したあと、DataTable の GetChanges メソッドで変更内容を取得してデータベースに反映すればいいと思います。

     

    また、DataView の RowStateFileter を指定すれば変更された行で絞り込めます。

    http://msdn.microsoft.com/ja-jp/library/system.data.dataview.rowstatefilter(v=VS.80).aspx

    このプロパティを使って絞り込んだDataViewもとに、データベースに反映するという方法もあります。

     


    なかむら(http://d.hatena.ne.jp/griefworker)
    • 回答としてマーク yasheeki 2010年11月28日 15:09
    2010年11月28日 13:01
  • ありがとうございます。

    >もとになった DataTable を取得したあと、DataTable の GetChanges メソッドで変更内容を取得してデータベースに反映すればいい

    とのことで、DataTable でデータベースに反映させるのですね。

    また、DataView の RowStateFileter を指定すれば変更された行で絞り込んで、DataViewもとに、データベースに反映するという方法もあるとのことで参考になりました。

    2010年11月28日 15:14