C#不会捕获执行非查询异常

时间:2013-03-06 03:27:11

标签: c# sql

我有这个代码调用存储过程将数据'插入'到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'中插入重复键。 超时已过期。操作完成之前经过的超时时间或服务器没有响应。 声明已经终止。“

1 个答案:

答案 0 :(得分:-1)

我解决了它们。转到Debug>例外,我只是在公共语言运行时异常中“取消选中抛出的复选框”