質問: int.Parse(value); break; default: break; } ii++; } cmd.ExecuteNonQuery(); } } } } catch (System.Exception e) { // ファイルを開くのに失敗したとき LogOutput(e.Message, true, true); } // コミット trans.Commit(); } } catch (Exception exception) { LogOutput(exception.Message, true, true); return false; } } ``` 当然ながら、プライマリーキーであるIDが重複したデータをインサートしようとするとエラーになります。 これをなんとか、プライマリーキーが重複した場合はインサートしないようにするか、または、構わずインサートをして、エラーが起こっても、その後の処理が継続するようにしたいと思っています。 このような場合、インサート前にselectでデータカウントをしてみないといけないのでしょうか? データ件数が多いので、1データインサートするごとにSELECTするのは、時間がかかるのではないかと思い、心配です。 また、このインサートは、CSVファイルを読み込んでデータ分ループさせているのですが、エラーでcatchに入ってしまうと、forループがそこで終わってしまうので、うまくいきません。 例えば、プライマリーキーが重複する場合は、インサートせずにエラーにもしないような、何かいい方法は無いでしょうか?
回答: そもそも重複しないIDをつければいいのではないでしょうか?