2013-03-06 3 views
0

У меня есть этот код, который вызывает хранимую процедуру для «вставки» данных в таблицы в SQL.C# не улавливает выполнение исключения без запроса

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(); 
    } 
} 

но проблема в том, что не ловит ошибку в «методе примерочных поймать» я не знаю, почему, но мой код является правильным.

Ошибка говорит: «Нарушение UNIQUE KEY ограничение„Cons_BatchID“Невозможно вставить повторяющийся ключ в объект„“dbo.tbl_WinApps_FileHeader Время ожидания истекло Время ожидания истекло до завершения операции или сервер не отвечает... . Заявление было прекращено. "

+3

Какая ошибка вы имеете в виду. –

+1

Можете ли вы вставить здесь сообщение об исключении? – Mohayemin

+0

Есть ли внутреннее исключение? –

ответ

-1

Я решил это ребята. Перейдите в раздел «Отладка»> «Исключения», и я просто «снял флажок с флажка» в Common Language Runtime Исключения

+0

Это не поможет вам, если ваша программа запустилась не в Visual Studio -_- – Smartis

+0

@Smartis Нет, это недоразумение. ОП считал, что ошибка не была поймана. Это было, но Visual Studio нарушила непосредственную причину исключения. Эта опция останавливает это. Если бы ОП прошел через код, он бы увидел, что улов работает как ожидалось (предполагая, что это «SqlException»). –

Смежные вопросы