none
DataRow で更新したデータをデータベースに反映する方法 RRS feed

  • Question

  • お世話になります。

    Datarow row;
    ......
    row.AcceptChanges();
    で、Unchanged となったデータをデータベースに反映したいと思います。

    SET ~~~ という方法で変更せずに、コードでダイレクトにデータベースにアクセスして変更する方法はとれるのでしょうか?

    よろしくお願いします。
    Wednesday, July 1, 2009 1:30 PM

Answers

  • とりあえずこちらが参考になると思いますので、読んでみてください。

    第6回 データセットを使ったレコードの更新と削除
    http://www.atmarkit.co.jp/fdotnet/basics/adonet06/adonet06_01.html


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
    • Marked as answer by wiemint Sunday, July 5, 2009 5:52 AM
    Thursday, July 2, 2009 3:27 PM
  • trapemiya さん

    ご紹介いただいたサイトを拝見し、今まで漠然としていたデータセットとデータベースとの関係などが分かるようになってきました。

    今回の更新方法についても、これを参考に実現できると思います。
    まだ難しくて分からない部分もありますが、今の自分のレベルには合う内容でした。
    ありがとうございます。

    今後ともよろしくお願いします。

    • Marked as answer by wiemint Sunday, July 5, 2009 5:57 AM
    Sunday, July 5, 2009 5:56 AM

All replies

  • 可能ですが、UnChangedになっていますので、どのDataRowを更新するのか特定する必要があります。したがって、AcceptChanges()を実行する前に更新された行を保持しておき、それを元にデータベースへ変更に行けば良いと思います。

    ところなぜこのようなことをされたいのでしょうか? 場合によっては他の解決策があるかもしれません。
    また、SET ~~~の方法が何を指されているのかわかりませんでした。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
    Wednesday, July 1, 2009 3:50 PM
  • ご回答ありがとうございます。

    どの行というデータのは、
    String tblName = "TheTableName";
    DataRow row = ds.Tables[tblName].Rows.Find(12);
    row[TheColumnName] = int.Parse(theColumnNameBox.Text); // (これでDataTable の特定カラムの特定データを変更することができるのでしょうか?)
    などでは、'12' と特定できていないのでしょうか?

    特定済みとすれば、これをデータベースに反映する方法を教えて欲しいのです。
    また、AcceptChanges()を実行する前に更新された行を保持という方法について、もう少し教えてください。

    そのほか、DataRow のデータを更新したので、データベースそのものではなく、DataSet ではデータが更新されたと考えてよいでしょうか?

    このあたりの、DataSet(DataTable や DataRow なども)だけの更新とデータベースへの反映との違い辺りが弱いのです。
    Thursday, July 2, 2009 2:36 PM
  • ごめんなさい。
    wiemint とwiemove とは同一人物です。
    Thursday, July 2, 2009 2:56 PM
  • とりあえずこちらが参考になると思いますので、読んでみてください。

    第6回 データセットを使ったレコードの更新と削除
    http://www.atmarkit.co.jp/fdotnet/basics/adonet06/adonet06_01.html


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
    • Marked as answer by wiemint Sunday, July 5, 2009 5:52 AM
    Thursday, July 2, 2009 3:27 PM
  • trapemiya さん

    ご紹介いただいたサイトを拝見し、今まで漠然としていたデータセットとデータベースとの関係などが分かるようになってきました。

    今回の更新方法についても、これを参考に実現できると思います。
    まだ難しくて分からない部分もありますが、今の自分のレベルには合う内容でした。
    ありがとうございます。

    今後ともよろしくお願いします。

    • Marked as answer by wiemint Sunday, July 5, 2009 5:57 AM
    Sunday, July 5, 2009 5:56 AM