Пытаюсь сделать с помощью события DataTable.RowChanging синхранизацию изменений таблиц в DataSet на сервер:
подписываюсь на это событие для таблице где в случае неудачного коннекта генерирую исключение.
Как я понимаю должно все работать так:
после вызова MyDataTable.Rows.Add( newDataRow) возникает событие DataTable.RowChanging где происходит
создание коннекта с сервером
Но вот чудо — если в процедуре обработки события сгенерировать исключение то его ничем не поймать!!
Пример:
try
{
wsDataTable.Rows.Add(wsdrw);
}
catch
{
//НЕ ДОСТИЖИМАЯ ТОЧКА — ПОЧЕМУ НЕ ПОНИМАЮ
MessageBox.Show ("Нет соединения с сервером.","Ошибка изменения данных.",
MessageBoxButtons.OKCancel, MessageBoxIcon.Error);
return;
}
А вот с событием DataTable.RowDeleting все как по маслу: что за глюк , весь день, блин , убил на это.
Караул!!! ПОмогите.
Здравствуйте, barn_czn, Вы писали:
_>Пытаюсь сделать с помощью события DataTable.RowChanging синхранизацию изменений таблиц в DataSet на сервер:
_>подписываюсь на это событие для таблице где в случае неудачного коннекта генерирую исключение.
_>Как я понимаю должно все работать так:
_> после вызова MyDataTable.Rows.Add( newDataRow) возникает событие DataTable.RowChanging где происходит
_> создание коннекта с сервером
_>Но вот чудо — если в процедуре обработки события сгенерировать исключение то его ничем не поймать!!
dataset11.MyTable.RowChanging +=new DataRowChangeEventHandler(MyTable_RowChanging);
Dataset1.MyTableRow row = dataset11.MyTable.NewMyTableRow();
try
{
dataset11.MyTable.AddMyTableRow(row);
}
catch
{
MessageBox.Show("Exception");
}
private void MyTable_RowChanging(object sender, DataRowChangeEventArgs e)
{
throw new Exception();
}
Все отлично отрабатывает. Exception ловится. (framework 1.1)
Ты уверен что у тебя он действительно отбрасывается?
Какого типа исключение отбрасывается?
... << RSDN@Home 1.1 beta 2 >>
Здравствуйте, rezo, Вы писали:
Либо у тебя Exception отбрасывается в другом потоке.
... << RSDN@Home 1.1 beta 2 >>
Здравствуйте, rezo, Вы писали:
R>Здравствуйте, barn_czn, Вы писали:
_>>Пытаюсь сделать с помощью события DataTable.RowChanging синхранизацию изменений таблиц в DataSet на сервер:
_>>подписываюсь на это событие для таблице где в случае неудачного коннекта генерирую исключение.
_>>Как я понимаю должно все работать так:
_>> после вызова MyDataTable.Rows.Add( newDataRow) возникает событие DataTable.RowChanging где происходит
_>> создание коннекта с сервером
_>>Но вот чудо — если в процедуре обработки события сгенерировать исключение то его ничем не поймать!!
R>R> dataset11.MyTable.RowChanging +=new DataRowChangeEventHandler(MyTable_RowChanging);
R> Dataset1.MyTableRow row = dataset11.MyTable.NewMyTableRow();
R> try
R> {
R> dataset11.MyTable.AddMyTableRow(row);
R> }
R> catch
R> {
R> MessageBox.Show("Exception");
R> }
R> private void MyTable_RowChanging(object sender, DataRowChangeEventArgs e)
R> {
R> throw new Exception();
R> }
R>
R>Все отлично отрабатывает. Exception ловится. (framework 1.1)
R>Ты уверен что у тебя он действительно отбрасывается?
R>Какого типа исключение отбрасывается?
Прошу прощения за ошибку: с событием RowChanging все получаеться , не получаеться с RowChanged.
Можете попробовать.