投稿者 魔界の仮面弁士  (社会人) 投稿日時 2017/7/31 19:19:09
削除手順については回答済みなので、あとは御自信で調べて
実装するフェーズだと思っています。

データベース上のデータを削除する方法も、「MySqlDataAdapter.Update を呼び出す方法」と、
「MySqlParameter を指定して、MySqlCommand.ExecuteNonQuery を呼び出す方法」の
2 パターンを回答していますね。


> あくまで選択された行を削除したいのですが、

こちらは、何をもって「行を選択したと看做すのか」次第ですね。

そのため先のサンプルでは、ユーザーに Delete キーを押させるのではなく、
『ユーザー操作ではなく、プログラムから削除』のための手順として、
>> 【行全体が選択されているものを対象とする場合】
>> 【セルの選択状態とは関係なく、現在のカーソル行を対象とする場合】
>> 【現在のカーソル行とは関係なく、選択されているセルの行を対象とする場合】
の 3 パターンを用意しています。

それぞれどういう違いがあるのかを実際に試してみた上で、
実際の要件に近いものを選んで、それを消去ボタンの Click イベントに
記述すれば良いのでは無いでしょうか。

あとは、DataGridView 上に チェックボックス列を追加しておき
☑の有無によって、削除対象行を判断すると言う手もありますね。
(この場合、DataTable 上に Boolean 型の列を追加するのが手っ取り早いです)


> どこを修正すれば選択行をWHERE句に指定することができますでしょうか? 
それだと質問ではなく、もはや作成依頼になってしまいますね…。(^^;

継続質問ということであれば一向に構わないのですが、
作成依頼となってしまうようなら、申し訳ないですが私は手を引かせてもらいます。


一応、選択行の DataRowView あるいは DataRow を得る方法は示しているので、
そこから各列の値を取得することはできるかと思いますが、如何でしょうか。

あるいは、先の回答のどの部分の意味が分からないかを伝えて頂ければ、
その点について追加説明いたしますよ。


なお、先の回答の『削除状態』の話の意味が分からない場合には、先に
下記の「行の状態とバージョン」の解説に目を通しておいた方が良いかもしれません。
https://msdn.microsoft.com/ja-jp/library/ww3k31w0.aspx