探しているのはSqlException、特に主キー制約の違反です。スローされた例外のnumberプロパティを確認することで、この例外からこの特定のエラーを取得できます。この回答は、おそらく必要なものに関連しています。SQLServer2008のエラーコードから主キーの重複を特定する方法
要約すると、次のようになります。
// put this block in your loop
try
{
// do your insert
}
catch(SqlException ex)
{
// the exception alone won't tell you why it failed...
if(ex.Number == 2627) // <-- but this will
{
//Violation of primary key. Handle Exception
}
}
編集:
これは少しハッキーかもしれませんが、例外のメッセージコンポーネントを調べることもできます。このようなもの:
if (ex.Message.Contains("UniqueConstraint")) // do stuff