我有一个包含一些列的表,并且我在其中 3 个列上设置了唯一键,以确保表中没有重复项。现在我想知道是否使用 try / catch 来吞下重复项上的异常并继续更新插入下一行foreach
是一个好方法吗?
try {
sqlWrite.ExecuteNonQuery();
} catch (SqlException sqlException) {
if (!sqlException.ToString().Contains("Violation of UNIQUE KEY constraint")) {
MessageBox.Show("Error - " + Environment.NewLine + sqlException.ToString(), "Error SQL");
}
} catch (Exception exception) {
MessageBox.Show("Error - " + Environment.NewLine + exception.ToString(), "Error SQL");
}
或者我应该在插入查询中执行 SELECT 以检查行是否存在以及是否跳过插入?我已经读到使用异常作为数据验证的一部分是不好的,但有些东西应该像那样使用(例如如何在 C# 中检查文件锁定?应该与 try/catch 一起使用)。