Solution 1 is the best one. Besides you should check the existence of referred data of the element(which need to be deleted).
Recently I have answered similar question, check it out.
Handle Delete from Grid view have 2 tables with relationships[
^]
Besides, Don't delete records, Change the status of Rows. By that way, you could maintain backups & get more benefits like audit. Check the below answer, explained there
Sql Table.. How to do this?[
^]