Перехват исключений нескольких команд SQL Server в C # - PullRequest
0 голосов
/ 13 марта 2019

Я выполняю несколько обновлений в одной команде, например:

System.Data.SqlClient.SqlCommand command = new 
System.Data.SqlClient.SqlCommand();
command.CommandText="executing first updateSP" +"executing second 
updateSP"+.....+"executing 10th updateSP"
try
{
command.ExecuteNonQuery();
}
catch(sqlException ex)
{
ex.message;
}

, если 2-е, 3-е, 4-е, обновление получает исключение, но в блоке catch я получаю только одно исключение spupdate.Есть ли способ получить все обновления исключений?

1 Ответ

0 голосов
/ 13 марта 2019

вы всегда можете использовать массив текстовых команд SQL, также я всегда использую соединение для создания команды:

string[] cmds = new string[3] {  sp1_SQL, sp2_SQL, sp3_SQL };
try
{
  foreach( string sql in cmds)
  {
     using(System.Data.SqlClient.SqlCommand command = conn.CreateCommand())
     {
       command.CommandText = sql;
       var rtn = command.ExecuteNonQuery();
     }
   }
}
catch(sqlException ex)
{
  ex.message;
}

Этот код будет прерван после первого исключения, но если вы хотите продолжитьвыполнять каждый оператор независимо от исключения (причиняет боль моему животику), затем перемещать попытку / перехват в foreach

...