Как проверить, выполняются ли отдельные SqlCommands во время SqlTransactions, чтобы увидеть, будут ли они выполняться? - PullRequest
0 голосов
/ 15 июня 2010

Я читал о SqlTransactions и нашел множество примеров, таких как: http://www.devhood.com/tutorials/tutorial_details.aspx?tutorial_id=451

Проблема в том, что когда я выполняю BeginTransaction () (выполнить все команды) и затем Commit () в конце, все команды, которые я выполняю, запускаются, а те, которые имеют синтаксические или другие ошибки, просто пропускаются. Здесь я также хотел бы выполнить откат, а не пропускать их. Я нашел несколько статей на эту тему, но они были не очень полезны и были написаны исключительно на SQL.

Есть ли способ узнать, произошел ли сбой одного из ExecuteNonQuery () перед фиксацией, а не просто пропущен? Спасибо.

1 Ответ

0 голосов
/ 15 июня 2010

Вы ошибаетесь.

  1. Команды выполняются при их выполнении.Они просто не сразу фиксируют свои изменения.
  2. Команды с ошибками не "пропускаются".Они генерируют исключения во время их выполнения.

Если вы все делаете правильно, вы не будете выполнять Commit, когда были сгенерированы исключения, и транзакция будет откатываться.

Сам пример, который вы привели, показывает это.См. Строку 36.

...