ストアド プロシージャを呼び出して SQL のテーブルにデータを「挿入」するこのコードがあります。
using (SqlConnection connection = new SqlConnection(Global_Variables.DBcon))
{
SqlCommand cmd = new SqlCommand("sp_WinApps_Import_ERData", connection);
cmd.CommandType = CommandType.StoredProcedure;
connection.Open();
try
{
cmd.ExecuteNonQuery();
Console.WriteLine("file imported!");
}
catch (SqlException ex)
{
Console.WriteLine("BATCH ID ALREADY EXISTS!" + ex.Message );
}
finally
{
connection.Close();
}
}
しかし、問題は、「try-catch メソッド」でエラーをキャッチしないことです。理由はわかりませんが、コードは正しいです。
エラーには、「UNIQUE KEY 制約 'Cons_BatchID' の違反。オブジェクト 'dbo.tbl_WinApps_FileHeader' に重複キーを挿入できません。タイムアウトの期限が切れました。操作が完了する前にタイムアウト期間が経過したか、サーバーが応答していません。ステートメントが終了しました。」