0

ストアド プロシージャを呼び出して 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' に重複キーを挿入できません。タイムアウトの期限が切れました。操作が完了する前にタイムアウト期間が経過したか、サーバーが応答していません。ステートメントが終了しました。」

4

1 に答える 1

-1

私はそれをみんな解決しました。[デバッグ]>[例外]に移動すると、共通言語ランタイムの例外で「チェックボックスがオフになっています」

于 2013-03-06T04:08:11.550 に答える