回答編集履歴
2
追記
answer
CHANGED
@@ -47,4 +47,15 @@
|
|
47
47
|
|
48
48
|
自力で一からコードを書く場合のような種々の問題に悩むことはなくなり、開発工数は激減するはずです。保守工数も減るはずです。
|
49
49
|
|
50
|
-
お試しください。
|
50
|
+
お試しください。
|
51
|
+
|
52
|
+
**【追伸】**
|
53
|
+
|
54
|
+
MySQL で Visual Studio の TableAdapter 構成ウィザードを利用する場合、Visual Studio のウィザードが使う MySql.Data.dll のバージョン 6.9.8 と、GAC の MySql.Data.dll のバージョン 6.9.9 に不一致があって、それが原因でウィザードが期待通り動かないということがありましたので注意してください。
|
55
|
+
|
56
|
+
対処方法はバージョンを一致察せることです。詳しくは以下の記事を見てください。
|
57
|
+
|
58
|
+
MySQL での TableAdapter 構成ウィザード不具合
|
59
|
+
[http://surferonwww.info/BlogEngine/post/2018/02/10/tableadapter-configuration-wizard-does-not-work-properly-for-mysql.aspx](http://surferonwww.info/BlogEngine/post/2018/02/10/tableadapter-configuration-wizard-does-not-work-properly-for-mysql.aspx)
|
60
|
+
|
61
|
+
上記は MySQL Installer 5.7.17 の話で、それ以外でどうなっているか(直ったのか、変わってないのか、さらに悪くなっているのか等)は不明です。
|
1
訂正
answer
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
|
13
13
|
そして、ユーザーが DataGridView の画面を見て、削除したいレコードの DEL_FLG 列のチェックボックスにチェックマークを入れるのですよね?
|
14
14
|
|
15
|
-
ユーザーが編集完了後[削除]ボタンをクリック
|
15
|
+
そうであれば、ユーザーが編集完了後[削除]ボタンをクリックしたとき、そのイベントハンドラ DataGridView1_CellContentClick でユーザーが編集したすべての行を UPDATE すれば良いはずです。
|
16
16
|
|
17
17
|
そのような機能は DataSet/DataTable + DataAdapter に備わっているので、それを利用すれば容易にできると思います。
|
18
18
|
|
@@ -21,9 +21,9 @@
|
|
21
21
|
DB 設計者のための明解 ADO.NET 第 1 回
|
22
22
|
[https://docs.microsoft.com/ja-jp/previous-versions/cc482903(v=msdn.10)](https://docs.microsoft.com/ja-jp/previous-versions/cc482903(v=msdn.10))
|
23
23
|
|
24
|
-
|
24
|
+
そのような構造にすれば、ユーザーが DataGridView を操作・編集した結果は上の記事の図1にあるように DataSet / DataTable に反映されます。もちろん DEL_FLG にチェックを入れた結果もです。
|
25
25
|
|
26
|
-
編集作業
|
26
|
+
編集作業終了後、ユーザーが[削除]ボタンをクリックすることにより DataAdapter に Update メソッドをかければ、上の記事の図2のように DataAdapter によって SQL が自動的に発行され、SQL Server のテーブルが更新されます。
|
27
27
|
|
28
28
|
DB が SQL Server の場合ですが(MySQL の場合も Visual Studio に同等な機能を追加できます)、以下のチュートリアル、
|
29
29
|
|
@@ -43,7 +43,7 @@
|
|
43
43
|
|
44
44
|

|
45
45
|
|
46
|
-
今回のケースですと、削除は、DEL_FLG 列があるはずなのでそれにユーザーがチェックを入れると、内部の DataTable の当該 DEL_FLG 列が健康されその行には図1でいう Modified マークがつきます。その後、フロッピーディスクのアイコンをクリックすれば DB のテーブルに編集結果が反映されます。
|
46
|
+
今回のケースですと、削除は、DataGridView に DEL_FLG 列があるはずなのでそれにユーザーがチェックを入れると、内部の DataTable の当該 DEL_FLG 列が健康されその行には図1でいう Modified マークがつきます。その後、フロッピーディスクのアイコンをクリックすれば DB のテーブルに編集結果が反映されます。
|
47
47
|
|
48
48
|
自力で一からコードを書く場合のような種々の問題に悩むことはなくなり、開発工数は激減するはずです。保守工数も減るはずです。
|
49
49
|
|