/// <summary> /// 管理データを削除します /// </summary> private void DeleteData(IList <int> idList) { //セルが選択されていない場合は、処理を抜けます if (_grid.SelectedCells.Count == 0) { return; } var result = MessageBox.Show("管理データを削除してもよろしいですか?\nファイルは削除されません。", "確認", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2); if (result == DialogResult.Yes) { var deleteIDList = new List <int>(); //グリッドから行を削除するためのIDリスト //「はい」の場合、管理データを削除します using (var connection = _db.GetConnection()) { //トランザクション開始 var transaction = connection.BeginTransaction(); try { foreach (var id in idList) { //管理データを削除します FileDB.DeleteData(connection, id); //削除用IDリストにIDを追加します deleteIDList.Add(id); } //コミット transaction.Commit(); } catch (Exception ex) { //ロールバック transaction.Rollback(); MsgBoxUtils.ShowErrorMsgBox("削除に失敗しました。\n" + ex.Message); } } //一覧を更新します foreach (var id in deleteIDList) { //指定したIDの行を取得します int row = GetRowIndex(id); //行を削除します _grid.Rows.RemoveAt(row); } } }