powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Выход из DML-метода
1 сообщений из 1, страница 1 из 1
Выход из DML-метода
    #36746575
sysaux
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.
Столкнулся с не совсем понятным поведением в секции try..catch
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
[System.ComponentModel.DataObjectMethodAttribute
            (System.ComponentModel.DataObjectMethodType.Update, true)]
public bool UpdateRecord(string par1, string par2)
{
  ...
  command.CommandText = "UPDATE MY_TABLE SET FIELD=:FILED, FIELD2=:FIELD2"
                                + "WHERE ID=:ORIGINAL_ID";
  ...//Биндинг параметров
  int affected;
  try
  {
    affected = command.ExecuteNonQuery();
  }
  catch
  {
    return false;
  }
  finally
  {
    command.Dispose();
    CloseConnection();
  }
  return affected > 0;
}
как я понимаю - при ошибке update-команды метод должно вернуться значение false, и всегда выполниться секция finally. Проверил отладчиком:
1. При ошибке апдейта - выполняется и секция catch с return false;, и секция finally, и последний оператор return affected>0;. Почему?
2. При некоторых значениях параметра метод UPDATE... не изменяет ни одной строки, т.е. affectedRows=0. Неужели это считается ошибкой - в таких случаях также выполняется секция catch.

Заранее благодарю за помощь.
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Выход из DML-метода
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]