DBを更新するアプリケーションにつきまして

タグの編集
投稿者 T  (社会人) 投稿日時 2020/3/30 11:17:37
お世話になります。

DataGridViewをデータベースに繋いで編集ができるアプリを作っています。
現在、7カラム列がある内の一つを「更新日」にしています。
更新日は編集禁止になっているのですが、それ以外の6カラムの内、
どれか一つでも編集された場合は、updateの際に今日の日付が入るようにしたいです。
ただ、それに至るまでの道のりがわかりません。

ご教授いただければ幸いです。
投稿者 るきお  (社会人) 投稿日時 2020/3/30 14:37:16
DataGridViewは使い方によって、プログラム方法が大きく変わります。
たとえば、データバインドしているかどうかは影響が大きいですし、他の使い方もやり方に影響します。

Tさんが、作っているうまく動かないプログラムを投稿していただければ、いろいろなことがわかるので、Tさんも回答者もお互いに時間が節約できます。
プログラムの量が多いようでしたら、動作する最小限のプログラムにして、投稿していただけるととても良いです。たとえば、本来7列あるところを2列版にするなど。

データバインドしている場合はDataTableの各行のRowStateプロパティを見ると、その行の変更有無・新規追加or削除が判断できるので、RowStateがDataRowState.Modifedの列(つまり、変更されている列)に対して、updateを今日の日付に更新するSQL文を実行するようにすれば目的は達成できると思います。使い方によってはもっとスマートな方法もあるかもしれません。
RowStateプロパティに応じて、SQLを発行する例はこちらのリスト18にありますので、あてはまるようでしたら参考にしてください。

http://rucio.o.oo7.jp/main/VBdotNet/Database/Database4.htm
投稿者 T  (社会人) 投稿日時 2020/4/1 11:24:34
返信が遅れてしまい申し訳ありません。

for文を使ってそれぞれのRowstateがunchangedでないものを割り出し、該当行の更新日にTodayを代入することで対応できました。ご協力ありがとうございました。