Insertion is being trigger more than once from frontend. Pressing 'Refresh' button of browser or pressing a F5 button would be triggered and data can be duplicated.
Have a look at this article to workaround it:
Refresh Page Issue in ASP.Net[
^]
Though, apart from handling it at frontend, you should also keep some kind of check at the backend for potential duplicates to make it a strong design (if data is critical), example track data entry with datetime and if last data entered is similar within a very close timeframe then raise a warning before insertion.
In general for simple apps, just to avoid the issue mentioned, follow the article link I shared and that should help you out.