Tôi không thể thấy bất kỳ điều gì trong mã của bạn có thể thực thi nó hai lần. Tôi cho rằng nó được gọi hai lần. Đặt điểm dừng tại addNewComment
và nếu nó đang được gọi hai lần, hãy nhìn vào dấu vết ngăn xếp để xem nó đang được gọi từ đâu trong cả hai lần.
Có thể bạn có một sự kiện được gọi hai lần chẳng hạn. Điều này có thể xảy ra trong ASP.NET nếu bạn đã bật tính năng tự động nối dây các sự kiện và đã kết nối sự kiện một cách rõ ràng.
Nhân tiện, bạn chắc chắn nên sử dụng truy vấn tham số hóa không nối chuỗi. Tôi giả sử nhận xét đó là đầu vào do người dùng cung cấp? Trong trường hợp đó, bạn đang tự thiết lập cho một cuộc tấn công chèn SQL bằng mã bạn đã hiển thị.