Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
 Нужно ли писать RollBack в транзакции? Неочевидное свойство using  [new]
Михаил Бор
Member

Откуда: Москва
Сообщений: 319
Привет всем! Нужно ли писать rollback? Странный вопрос! Но в методе Dispose транзакции он вроде бы вызывается! Так что правильно писать так
try
{
using (SqlTransaction tran = DBConnection.BeginTransaction())
{
TableAdapter.Update(data, tran);
tran.Commit();
}
}
catch (Exception err)
{
}
Это опять недокументированная особенность! Интересно кто ни будь так пишет?
20 сен 06, 12:48    [3160700]     Ответить | Цитировать Сообщить модератору
 Re: Нужно ли писать RollBack в транзакции? Неочевидное свойство using  [new]
Лиман Артём
Member

Откуда: УКРАИНА, г.Львов -> Дойчлянд, Хайдельберг
Сообщений: 2051

> Привет всем! Нужно ли писать rollback? Странный вопрос! Но в методе
> Dispose транзакции он вроде бы вызывается! Так что правильно писать так
> try
> {
> using (SqlTransaction tran = DBConnection.BeginTransaction())
> {
> TableAdapter.Update(data, tran);
> tran.Commit();
> }
> }
> catch (Exception err)
> {
> }
> Это опять недокументированная особенность! Интересно кто ни будь так
> пишет?


по-моему try там совсем никчему, либо using забрать. А то немного
параноидальный код...


Posted via ActualForum NNTP Server 1.3

20 сен 06, 16:02    [3162591]     Ответить | Цитировать Сообщить модератору
 Re: Нужно ли писать RollBack в транзакции? Неочевидное свойство using  [new]
Михаил Бор
Member

Откуда: Москва
Сообщений: 319
А как анализировать ошибку? В
catch (Exception err)
{
// Здесь код анализа что не позволило сдеалать+ сообщениен пользователю
}
20 сен 06, 16:47    [3163006]     Ответить | Цитировать Сообщить модератору
 Re: Нужно ли писать RollBack в транзакции? Неочевидное свойство using  [new]
Лиман Артём
Member

Откуда: УКРАИНА, г.Львов -> Дойчлянд, Хайдельберг
Сообщений: 2051

а ты что в каждом блоке try..catch собираешься анализировать ошибку? ИМНО
надо организовывать центральный обработчик ошибок и обрабатывать их там
(например через AppDoman.UnhandledException). Тоесть catchа там либо не
должно быть, либо он должен рефровать другой exception (например если нужно
обернуть системное исключение в свой класс исключение, etc). Бывают конечно
разные исключение, прогнозируемые, но тогда их надо ловить внутри блока
using (например исключение парсинга строки в число, etc)
Ну, а если уж хочешь делать как ты хочешь, то (собстна я об этом уже
говорил) отказываешься от using и делаешь всё через try..finally..catch


Posted via ActualForum NNTP Server 1.3

20 сен 06, 18:10    [3163650]     Ответить | Цитировать Сообщить модератору
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить